I think this might be fairly easy: At the highest level of your component, do NOT set X, Y or Z to a fixed value. Leave them alone! Don’t enter any value for them in the Component Attributes. That allows your user to put the component anywhere they want (absent the restrictions of any gluing plane(s) you have specified).
Heck, don’t even expose them to yourself! If you need to refer to them from a child component, they’re still there (parent!X, parent!Y, and parent!Z) if you need them.
If they aren’t nailed (with a formula or constant beginning “=”, or a user input ability in Component Options) they can be moved anywhere the user wants to put them.
For that matter, since the X, Y, Z positions of any child components refer to the axes origin of the child component relative to the axes origin (and any further rotations) of the parent, you probably won’t need the use parent!X, parent!Y, or parent!Z at all!