1. there really is no way to keep the morale up to the highest point. your best bet is just to attack as many ships\towns as possible and then go divide the plunder. you will lose some men along the way, but it will give you a higher percentage of "dubloons" when you divide. After you divide the plunder, you will start again with your flagship (make sure you choose which ship you want to continue with before doing so,) and the crews morale will be at "excellent".
2. specialists are acquired through defeating other pirates and villians (that is the best way to obtain them). Also talk to the "barmaids" often, sometimes they will tell you if there is a ship nearby that has a specialist on it.
3. the only way to add cannons to your ship is to defeat other ships, in which you will get their cannons. then go sell the ship you defeated, and the cannons will remain on your ship. some ships can only carry a maximum number of cannons though.
hope this helps