Network ownership position disagreement

Hi, I’ve been noticing an odd quirk while developing my game. When transferring network ownership from player to server after using a body mover there is a discrepancy between the new position of the player from the client vs the server. It’s really odd to explain so showing a clip would probably make more sense:


When the outline turns from green to grey (which represents the transfer of network ownership from client to server) The position of the dummy changes as well. I assume this is because the server receives an older final position of the character from the client before the transfer which can lead the to visual difference if the client still believes that it has the ownership, that’s only my best guess though. Regardless, is there a way to fix this issue?

Here is some psudo code that represents what I am doing internally

--client
function heartbeatStep()
    bodyPos.Position = --unrelated
    bodyGyro.CFrame = --unrelated
end

--server
victim.HumanoidRootPart:SetNetworkOwner('original owner')
victim.HumanoidRootPart.Velocity = Vector3.zero