If you are having problems while not the server, you might not be replicating things that need to be. Try making two players but without dedicated server. (two games will open, one will be server, one will be client) and see if only the client falls through. That’s how you know its definitely replication.
When you aren’t the server, you are the client and the server is showing you everything going on in the game. If you clip through the floor as the client, but not as the server. Than the client and server are unable to agree on what should be happening. The server is running the game at the same time the client is running the game. The server has authority though, and the client needs to be updated on reality, it cannot make its own reality, without breaking it(hah, mortal).
Does that raft have code? like is it moving around? or is it just a block sitting still in world space with water shaders around it? Check replication on the character itself(both replicate movement/location[one checkbox] and replicates in general [another catch-all that masterswitch turns replication on and off]. Both must be on. Also check the raft, and replicate any code the raft may have.
If the raft has code, and you found that the character and raft both are replicated, disconnect code on the raft, turning it back into a block, and see if the character still clips through. That’ll let you know you need to learn some things about replicating code.
Hint on replication:
custom event 1[Server Only]–> calls custom event 2
custom event 2[multi-cast] → Actual code goes here.
Hope this helps.