Attach to Component result in different Locations on Server and Client

The locations of client and server objects typically always differ. If you attach something to another component using Keep World Transform, the location it attaches to may be completely different on server compared to client, depending on when it was called. So yes, your solution of putting it in the exact location before attachment works. But even better is to use sockets when possible. That way you are attaching to the socket location, and not whatever the world location might be is when the call is received.