4.26 new water system and replication?

Maybe read this

And make sure that you are using Get Server World Time Seconds | Unreal Engine Documentation
Instead of the client local time.

Modify the material and pipe in the correct time variable instead of using the time node.

Change the CPP to use the same time to calculate and pluck wave height.

Then you have very little chance for things to go completely out of sync.

Let me also add, that Lag or time difference between clients won’t matter here.

So long as the wave material and the wave physics use the same unit of measure - then objects affected by buoyancy and the wave will always look to be in sync for everyone.
They can happen later than they do on server because of lag, but they will still be in sync.

So if the boat is a network replicating pawn, you need to account for that… set it’s client Z based on the reading of the physics, not on the network data.