Check out this thread
http://www.subsim.com/radioroom/showthread.php?t=202196
I had the same problem with the Type VIIa (and in my game, only the Type VIIa), even in calm seas I would constantly see the submerged icon - sometimes for 30 seconds at a time.
In post 13, Sober says to disable the Decks-Awash patch, which works - but no decks awash!
I then edited
Data\Submarine\NSS_Uboat7a\NSS_Uboat7a.cfg to set Surface Depth to 9 meters, and Snorkel Depth to 7 meters, which brought back Decks Awash in a limited way. I can now get celestial fixes - even in heavy seas, and I can also use my binoculars at decks-awash.
Down side is that you have to set the depth manually to 0 meters to surface (or blow ballast), and you have to go to periscope depth, then come up to "snorkle depth" to go to decks awash. You also lose snorkel depth, but I don't think many VIIa's were fitted with them, and periscope depth works fine for that if you're in a VIIa in '43.
It's a hack - hopefully something better will be mentioned - but it's better then playing when you submerge every few seconds.