I don't believe that a "nice" way of handling this, as you suggest, exists.
Basically, I think that there are three cases:
1. The base class property was declared overridable. In this case you can use "overrides".
2. The base class property was not declared overridable. In this case you can use "new", as shown in your example, since the designer only looks at the most derived class in the hierarchy.
3. You could implement a bool function, ShouldSerializeYourPropertyName(). The designer specially recognizes such functions. This function may require "overrides", "new", or neither depending on whether the base class already has such a function and whether it was declared overridable.
I have often used solution #2, as you have chosen, to solve this kind of problem.