BP based on C++ class does not reset a component's defaults

Blueprint inheritance from a parent C++ class is mostly similar to normal C++ inheritance, but there are a few specific differences. In a standard C++ child class, if the access specifier of a property in the parent class is changed so the property is no longer accessible to the child class, the child would not be able to override the property (without using a setter function). In that case, the default value of the property would revert back to the value set in the parent class.

However, for Blueprints the default value that was set in the Blueprint (effectively the child class) is still stored on disk even if the property is no longer exposed to Blueprints (eg. the EditDefaultsOnly specifier is removed), and will still override the default value in the parent class. It is part of the intended functionality of Blueprints. The only way to reset this value to the default value in the parent class would be to make the property exposed to Blueprints again. You could also remove the property from the parent class, compile the project, then add the property back in and compile the project again.