Adding to the scene does not generally preserve world position. See https://threejs.org/docs/#api/extras/SceneUtils for attach/detach functions.
In the longer run, it is useful to learn how the local and global matrices (and their inverses!) work and can be manipulated.
The local matrix of an object encodes local position, scale and rotation (and possibly more). The world matrix of an object is the matrix product of all local matrices of direct ancestors and the object itself, and encodes the combined effects of the matrices, including global position.
Applying the inverse of a matrix gives the inverse transform. This can for instance be used for finding an object’s position in another object’s local coordinates. Apply the inverse of the world matrix of the second object to the world position of the first.
Object3D has helpers like localToWorld and worldToLocal (and lookAt), and there are other useful methods in Matrix4 and Vector3 and more, I recommend reading the sources too see what is going on, and then soon you can write handy helper functions for your own needs.