You need to use PivotTo or SetPrimaryPartCFrame to correctly move the entire character, including syncing with the server. Just changing the position of the PrimaryPart doesn’t account for the physics or the other parts of the character.
You need to move the whole character, not just one part. Make sure the physics system is not interfering, and sync changes properly between the server and client.