Ethernet working well connected on laptop but NOT on router

Just an educated guess: "ethernet" does not mean an original Arduino Ethernet Shield but a cheap Chinese clone. If I'm right you might have one that has the wrong resistor value soldered. These board usually connect fine to a PC but don't work on router/switches because the speed auto-selection is not working correctly.