One thing I haven’t figured out how to do is make certain kinds of ship-to-ship combat engaging for everyone. If the pc’s ship is in a cannon fight with another ship, it’s going to have an unequal distribution of agency, since the captain (or whoever is deciding where the ship goes) is the only one making real decisions.
There’s a few ways to work around this, but the classic ship-to-ship standoff doesn’t fit well. Some options:
1. Don’t make ranged weapons better than boarding actions. If the best tactics is “get my people on their deck” you can use the full range of DnD options
2. Give everyone their own way of moving around (flying mounts, their own ships, swim speeds) so everyone is free to act as tey like
3. Just don’t do ship-to-ship combat (not very pirate-y)
4. Own it and let one character have the spotlight during these scenes. (Just make sure other pcs get their own scenes)
I do think “ship as bastion” is the way to go if there’s one main ship. Ships almost always become their own character in Age of Sail stories.
Have the PCs essentially be the Marines on the ship. The Captain is driving but the PCs are shooting arrows, manning ballistae and catapults or working on the rigging, until you close and then it is grappling hooks, boarding planks and a massive melee.
There are a couple ways to make this work in my experience - first make it a small ship, so the captain a 1st mate, a cook and the PCs.
The second is to make it a larger ship but only do a part of it once the ships are together and the things the PCs do before that change the odds. So for example your crew of 50 is taking on another ship with a crew of 50. When the two ships finally come together the PCs are supposed to take the Forcastle and other men are taking other parts of the ship "off screen". IF they succeed their allies succeed. How well the PCs do on stuff before the boarding/melee is joined affects how difficult their encounter is.