I think you might be overcomplicating things, this is much simpler:
(Spawner.myobj == 0)
Spawner.myobj = 1
Spawner.Spawn Object (child_obj)
child_obj set position to Spawner.X Spawner.Y
That will do it immediately, however, Sprite.Spawn method can create an object located at an image point or origin, so it should already be "on top" of the Spawner so to speak.
Secondly, why would you need "on tick"? Unless the spawner is moving around, it's going to repeatedly set the child_obj's position to the same coordinates.
Let's assume for a moment that the Spawner does move around, you could just pin the child object:
#1: Add Pin behavior to the child object and pin the child object to the Spawner right after the Spawner.Spawn child_obj call.
Here is how to use a stored UID's sprite's properties (you have to use Sprite.Pick call)
#2: If you want to set child_obj to obj_parent's coordinates, but you only have obj_parent's uid value, then you need to do this:
Pick(instance of obj_parent where UID = obj_parent)
child_obj.Set position( obj_parent.X, obj_parent.Y )
See here for tutorials on picking:
Hope this helps,