I haven't noticed this issue for myself, but I did have a question.
Just out of curiousity, shouldn't any gabled packets be picked up by the TCP stack? I thought TCP packets had a checksum and handshake for this very reason? Or are the packets regenerated at each connection point? Same for UDP although there is no handshake. If the router were garbling a packet, wouldn't the end device (say, the Mac), throw out the packet and (for TCP) request a resend?