The "relative to" parameter needs to be a common parent to the object you're moving, like so:
Common Parent
- Container Object
- Constained Object
Note how both are siblings in this case? If something is "eventually" going off-screen then it's most likely due to your hierarchy. Calculating the game object's bounds includes all of its children as well, so if you happen to move a child using the parent's bounds... those bounds will include that child too, which is not what you want.