Try sending {CF.ToEulerAnglesXYZ()}, CF.Position and on the server side, to get the CFrame construct it like this:
game.ReplicatedStorage.remotes.Place.OnServerEvent:Connect(function(player,Angle,Position)
print(CFrame.fromEulerAnglesXYZ(Angle[3], Angle[2], Angle[1])*Position)
end
It’s prolly some weird precision loss issues, which won’t be noticeable. Afaik roblox serializes values that is passed through remotes and even though lua uses 64 bit double numbers, I think the engine uses 32 bit floats internally so the loss might be coming from small changes while rounding.
Now that I checked again yes I can replicate it and it shows the same thing it is 100% float imprecision float values can’t store anything and has blind spots I think that’s what is causing it