Renaming variables won't update overrides
Given that a list of variable names defines the overrides, changing the variable name will not propagate to the overrides. The list could maybe be built when first selecting the object. Since the values are all reset to the parent's value when setting a parent, it should be enough to just check for further changes down the line. In this case the overrides field would not be needed in the serialization. This could be slower though.
We need the overrides list to propagate values to children, so can't get rid of it. Another solution would be to allow the user to manually check for overrides in the whole project at once and fix all entries, printing to the console fields which were not in the override list to make sure everything is done correctly.
Check for [FormerlySerialisedAs] attribute on recompile maybe?