Blackbeagle's answer was quite close, but not accurate after all. I've dug into something that I thought was probably unrelated, namely that the wires had an odd sequence, and that turned out to be the culprit! See photos below.
The essence is that the wall sockets (I took them apart) seem to be wired poorly but in the proper sequence, and the patch panel is wired according to the same standard... but somewhere, the labels must be mixed up because if I switch the wires around in the patch panel, it suddenly works!
Embarrassing admittance: In documenting this answer, I take a close-up photo of the patch panel's internal connectors and their labels. To my embarrassment, I notice that it's not labelled
1,2,3,4,5,6,7,8
but rather
1,2,4,5,3,6,7,8
! Can you spot the difference?
I've rewired one port accordingly and now it works with gigabit speed! (This is why I didn't want to accept Blackeagle's answer.)
The wall socket is poorly patched but the sequence is okay:
Experimentally swapped the wires on one port:
That worked! Now I need to do the same on all the ports. That's when I discover...:
What?! The sequence is not as I thought it was. It's my own fault and I've been overlooking it all this time. I am embarrassed :-)
No. On of the pieces of the connection (either Cat5 cable or the Cat6 cable) is a cross over. In addition make sure you're not using an uplink port on your router as that might be crossed. Up to date routers and switches usually should be able to use MDI-X to automatically switch whenever it should be a crossover port or not.
Test both Cat5 cables whenever they're straight or not. If both are straight chances are that the Cat6 is a crossover, maybe because someone wasn't paying attention while assembling the termination points.
Best Answer
This is most likely a problem with the cabling at some point. Here are the most common problems I have found to cause this in my experience (without certified test results on the installation, which I presume you do not have):
While 10-BaseT and 100-BaseTX use only two pairs, 1000-BaseT uses all four of the pairs found in your standard Cat5e or higher cabling. If any one of the eight wires has a fault of some sort, this will prevent your connection from negotiating to 1000-BaseT and result in a 100-BaseTX connection.