What you could do is, drop your player from say, 5 blitz units, do a line pick downwards, position your player at that point. From the pick, you can also get the normals, therefore positioning your player to the angle the boat is at, using aligntovector(). Linepick is really good if you have two ietms that are moving. With the idea that i suggested, keep your cube parented.
In the project i worked on, i had moving platforms, so i only parented the player to them if he was standing on the platform. If he jumped, i unparented him.
In the project i worked on, i had moving platforms, so i only parented the player to them if he was standing on the platform. If he jumped, i unparented him.