Besides debugging, would this help though? A corrupt packet is the same as not receiving the (correct) packet at all. It will be retransmitted when no ACK is received. If the problem is ephemeral, it will be resolved on the retransmission. If it's not, timing out the connection is the only course of action.
There are some ways to coax a retransmission (duplicate acking, maybe selective ack?); but retransmissions doesn't really help, since a given socket was always running through the same route, and getting corrupted. I guess an explicit 'got bad data' message would have shown up better in tcpdump though.
Sounds like a session-layer/presentation-layer sort of thing. TLS or IPSec might have such a protocol message.
Because the TCP checksum was incorrect, the packet would never reach a higher level such as TLS. TCP or ICMP would be the only options; maybe IPsec.