I think the ship repairs is an idea that already exist in your development phase.
My suggestion has 2 parts:
1: The ships needs underdeck.
2: The ship should have a 2 layered health bar.
Something like this:
[|||||||||||||||||||||||||||||||||||||||||||||||||||||||]  [||||] [||||] [||||] [||||] - [||||] [||||] [||||] [||||]
Let's call it Hard HP, and Soft HP.
Soft HP:
The ship can have 8 area, which can spawn a hole in the ship's hull under deck. If the ship is damaged, one of the 4 spot is damaged on that side.
If all 4 spots are taken down on that side, the cannon can "pass" through the open holes, so the other side can be damaged too from that side.
If one of the spot reaches 0 health, it spawns a hole on the ship's hull, and it starts to drain the Hard HP.
If you interact the hole with a plank in your hand, you patch it up, which gives the spot 1 health back, and stops the Hard HP drain.
If the hole is patched with plank it enables interaction with a repair kit, to restore it to 4 hp (It's a nerf to incombat repairs)
The planked breaches are destroyed with one cannon shot, while a repaired one needs some cannon shots to break.
Hard HP:
The Hard HP can't be damaged directly. It recieve damage over time, while there is unpatched hole on the underdeck.
The damage is represented by flood level underdeck.
To restore Hard HP, you have to interact with a bucket, to remove water from underdeck.
If Hard HP reaches zero, the ship sinks.

*(Extra)3: The cannonballs needs some voxel damage too