Changing structure of a 3D model

The idea is to import a 3d model that contains groups and meshes. I want to be able to move meshes between already existing groups within a model without changing the visual representation of the model.
Piece of my code is below. movedInternal is

    movedMesh.matrixWorldNeedsUpdate = true; // not sure if it's needed
    let meshPosition = new THREE.Vector3();
    movedMesh.getWorldPosition(meshPosition);

    oldParent.remove(movedMesh);
    newParent.add(movedMesh);

    movedMesh.worldToLocal(meshPosition);
    movedMesh.position.set(meshPosition.x, meshPosition.y, meshPosition.z);

And this is not working. Mesh changes its global position because new parent’s position is not the same as previous parent position, but I expect it to stay where it was but change its local position considering new parent’s position.

What do I do wrong?

Answered here: