I have been reading on Dependency properties for a few days and understand how they retrieve the value rather than to set/get them as in CLR properties. Feel free to correct
You cant add DependencyProperties to existing type. While you can use AttachedProperty, logic behind using it and deriving new type is completly different.
In your case I would recomend to derive new type. Mainly because your logic is bound with this type. This is basic behind inheritance and is not bound with Dependency properties.
In case of AttachedProperty you are only giving another object awerness of values in different object. Something like Grid.Row is giving Grid awerness of its child and how it should position it. Object where this property is set is not aware of anything.