The properties are shadowed because they're declared static/shared. You can't override a static property as it can't be marked virtual.
This means that the prefetch paths properties have to be shadowed.
The reason the properties which are mapped onto a relation are shadowed is because they return now a different type, My<entityname>Entity, instead of <entityname>Entity. You can't achieve this by inheritance unfortunately.
To be sure your code is preserved, place your code in the usercode regions. These regions are preserved and not overwritten.