Yep. Long ago when 100 Mbps was still new and shiny there were idiosyncracies with auto-negotiate. Due to that it was considered best practice for many years, particularly on network gear, to hard code both ends of a link.
In the 1 Gbps world that is no longer true. Auto-negotiate was in the standard from the very beginning. Even hard-coding a port to 1 Gbps doesn't actually hard code the part, it simply changes the options available during the negotiation phase to only list 1 Gbps as a valid option.
The problem is when the network layer is upgraded but the servers are still locked to 100 Mbps/full duplex. Even if the NIC is 1 Gbps capable, because it was explicitly locked to 100 Mbps it will not take advantage of it. Because it doesn't negotiate with the switch to determine optimal capabilities on both sides, all the switch can determine is that there is a 100 Mbps carrier signal but has no other information on the capabilities of the other side. It assumes that it is a half-duplex link without any flow control options. If the other side is coded for full duplex, you wind up with a duplex mismatch. Every time the switch is sending something and the server sends something back at the same time, the switch believes that is a problem since it shouldn't happen on a half duplex connection. It stops transmitting that frame, waits for the server to stop transmitting and free up the line, then starts transmitting again.
The moral of all this? Convince the admins to stop hard coding the server ports. It hasn't been a good idea for several years but the habit has been hard to kill.
Cheers!
-Chad