It looks like this all comes down to correctly replicating your 3D Cursor actor. What I would do is:
- Set the 3D Cursors owner to it’s respective player controller (if you are not already)
- Add a reliable server RPC to your 3D Cursor class that calls SetWorldLocationRotation
- Make sure 3D Cursor is set to replicate