We are using Megafiers that updates the collider mesh each frame. This way each effect applyed to the mesh ( waves, ripples, etc.) reflects on the mesh. For a realistic effect, a boat for example, must not only respond to the bouncy effect but also to the mesh collider. You could update your code, so RP would first respond to the floating routine and then respond to the mesh collider, this way the we would have the perfect water floating system. Drag and Angular Drag values could be use to make a big boat, for example, do not climb a wave, passing through it.