TCP checksums are fairly simple; a TCP stack basically just sums up the 16-bit words in a packet and stores the result in the checksum field; this will not detect 16-bit words being swapped around.
My guess is that the load balancer tried to invalidate the header while preserving the TCP checksum.
My guess is that the load balancer tried to invalidate the header while preserving the TCP checksum.