Are you using SetPos or MoveTo to move your boat?
I find using SetPos to move objects continuously stops working after a while. The workaround is every 5 or 10 frames or so, use a MoveTo command to move the boat to a different cell, and then move it back the following frame.
As for MoveTo, it is processor intensive. If you use it every frame, it will probably stop other scripts from running, and if you're using it exclusively, this might be why it stops working.