The one thing that you left out of this list is duplex mismatch. More often than not, late collisions are caused by one side being set to full duplex and the other to half. Or, one side set to full and the other to auto causing the auto to negotiate improperly to half.
Check your duplex setting. You should also be getting CRC errors on the interface that is set to full.
Mick.