For many people, naval warfare is the Achilles' heel of DH. While land warfare is modeled very accurately and has plenty of tactical choices to do, naval warfare is more or less random. When your navy meets enemy's navy, cross your fingers. Larger navy and better doctrines help to win a battle.
Anyway, the perfect composition of your fleet depends on the country you are playing. A good surface fleet has as many carriers as possible, and and equal amount of destroyers to escort them. Nothing else is required. To hunt submarines, build tons of destroyers and equip them with the ASW brigade. To hunt enemy convoys, build tons of submarines and put them to one huge stack.
As a result, I suggest you role-play instead and build all kinds of ships. I personally usually build carriers, battlecruisers, and heavy cruisers and create a battle fleet out of them. As bigger is better, I equip them with all possible brigades. For anti-submarine purposes I build light cruisers and destroyers with ASW brigade. That said, I rarely play as naval nations and usually start building a fleet only after I have won the land war.