Rowboat acting weirdly with BodyMovers?

So I’ve been working on a rowboat for my game, and it’s fine until the player gets near it.
The rowboat consists of several parts, with a seat for the player to seat on. All the parts of the rowboat are welded to the seat, the seat being the Part0, and all welds having the seat as a parent. In the seat, there’s a BodyPosition to keep the boat at the height of the ocean, around -2.5 studs on the Y-axis, a BodyGyro that would have the boat turn when I fully script it, and a BodyVelocity to have the boat move around the ocean. However, when the player gets near the boat, the boat literally flies up into the air for no reason, and comes down a few seconds later to a new location near the player. I know it comes down to the BodyPosition, but I don’t know why it goes up in the air. After this, the boat starts visually glitching and somehow is deleted from the game on the client-side.
This happens with the network ownership of the boat given to the server, given to the client, both with and without the BodyGyro, and doesn’t occur when I simply press “Run” to see the boat standing there in the ocean on the server view. I have this issue with another type of boat I’m working on as well, which is a sailboat, which uses about the same setup of BodyMovers in a seat for the player to go on.

I suspect it may have something to do with Roblox physics, since no scripts interfere with the boat, me even doing this in a fresh place with the only scripts being the swim script for the ocean and a weld script for the boat. I would really appreciate help.

The issue itself with the workspace given: https://youtu.be/LeW_bV_-qns

Thank you.