Box moves only on client and not server
Even though the client is moving the box and sees that movement because it’s moving it locally, the collision is not registered on the client side (can move through the box). Trying to walk into where the boxes actually are on the server side when controlling the client makes the collision happen.
So I think what’s happening here is based on the relation of which instance (the server vs client) has authority on the position of the box. I guess it is okay and allowed by Unreal to translate the box locally on the client, but that change will not propagate to the server, as the server has actual authority over where it is. Also, calling SetReplicates() only on client in this situation has no effect, meaning it truly is all one-way authority-wise. The clients can communicate to the server, but the server has the final say in what actually appears/occurs in the game.