Character mistake: At the beginning of the movie, the German sub gets surprised and severely damaged by a destroyer. The sonar man first notices the enemy destroyer approaching, but only a short time before the destroyer is already literally on top of the sub. German sonar at the time had the capacity to detect ships up to more than 7 miles away, so the sonar man really had to be asleep at his sonar station not to notice the destroyer approaching.
Character mistake: Near the beginning of the film, when Tyler calls the crew of the S-33 to quarters, look at the guy two back from Mazzola, on the far right. He has his hands clasped behind his back while he's supposed to be at attention. When Tyler says "At ease," he realizes his mistake, drops his hands to his sides where they're supposed to be, then clasps them behind his back again as he stands at ease.
Character mistake: After accurately depth charging U-571, the German destroyer crew suddenly turns out to be almost comically and unrealistically incompetent at the end of the movie. Not only do they barely hit U-571 with their guns, but they also can't keep up with the sub. But even with both submarine diesel engines running flank speed (of which U-571 only has one badly damaged engine operational), a common WWII destroyer would easily be twice as fast as a Type VII U-boat. The destroyer could swiftly close the distance and could either ram U-571 or cross the sub's wake to bring all its weapons to bear and make it more difficult to get hit by the sub. Of course the destroyer doesn't do that but stays perfectly in U-571's wake for an easy kill shot from its stern tube. In reality, it was considered an incredible feat to sink a destroyer with a torpedo, since they were agile at full speed, could easily dodge torpedoes and had shallow draft. This destroyer crew however, seems actively trying to get killed.