How is this done Obsttorte? I know how to use those movers, but not how to mix them.
As mentioned above you can bind different mover types to each other and then bind the boat to this setup, and let it move along a spline. That's a bit messy for my testing, though, not to mention the movement will probably get a bit repetetive after while. If you use a func_mover (which you need for the spline movement anyways) it makes more sense to create the bobbing and swinging of the boat via script, which also has the benefit of randomizing it a bit more. It heavely depends on your specific use-case how complex the setup has to be.
In regards to the player you can either bind a toggleable, invisible wall to the boat or immobilize the player while the boat is moving, so he doesn't fall into the water I would prefer the latter (easier).
BTW: For the future it might be worth considering performance before and during your mapping progress, and not only towards the end. This way you don't have to fallback to such auxiliary solutions.