There COULD be relatively simple solutions for most of the problems mentioned here. I say COULD because I have no idea how difficult it would be to code.
PROBLEM: Subs too slow to catch up to CV fleet.
SOLUTION: Allow subs to spawn from ports and 'close to shore' airfields. OK you won't catch a CV group in a tail chase, but you couldnt do that in RL anyway. At least this would make the current process of endless orbits of fields under attack by CV groups a more dangerous proposition.
PROBLEM: Subs would be 'invisible'
SOLUTION: Make submerged submarines visible only to aircraft and ONLY if the submarine is less than 100 feet deep.
PROBLEM: Submarines would be indestructible.
SOLUTION: Allow aircraft to set a fuse delay on their bombs, and have the bombs sink at a certain rate, say 10 feet per second. Sub 100 feet down? Set a 10 second delay on your bomb and away you go

Of course, a surfaced submarine would be able to be attacked with bombs, cannon or shellfire in the normal manner.
------------------
When I was a child, I spake as a child, I understood as a child, I thought as a child: but when I became a man, I put away childish things.
Chapter 13, verse 11