Remember that the base class will return its initial value no matter what you do, therefore you must as I said set a new initial value in your derived class, which is best done in your constructor.
The DefaultValue attribute is controlling what value the designer will see as default, and the standard behaviour is that designer will serialize only a non-default value in form generated code. In Properties window a property with non-default value appears bolded and you can doubleclick it or use context menu Reset to have it set the default value.
Think about the AllowUserToAddRows property for standard DataGridView control for example, DataGridView class sets this to True when it is created, its attribute says that is the default value and designer will not generate a '.AllowUserToAddRows=True' form code line. If you change the value to False designer sees this as a non-default value and adds a code line to form '.AllowUserToAddRows=False'.
Then you inherit that class, Shadows and set new designer default value for the property, but fail to set the initial value (like your previous post). When an instance of your class is created it first creates an instance of the base class (MyBase.New), where AllowUserToAddRows=True, designer sees this as a non-default value and generates form code 'AllowUserToAddRows=True'. If you reset the property or change it to False designer now considers the value default and remove the code '.AllowUserToAddRows=True'. Now there is no code that set that property to False and whenever a new instance is created base class returns True. Designer again add the form code for non-default value '.AllowUserToAddRows=True'. This is what happens each time you compile.
So, inherit the class, Shadows and set new designer default value and initial value for the property. What happens is same as explained above, but now your class sets the value to False also. Designer sees the default value and does not generate code to set property value. Since your class sets the value to False after base is created this is the value returned for new instances. If you change the value to True designer will generate a form code line '.AllowUserToAddRows=True' which is set after inherited class is created and thus is persisted also.