I have finished working out the switch. The switch had to be hard set to “speed 10” at the port of where I connected the hardware.
I’m not sure why the port didn’t detect that the enc28j60 through auto negotiation, but from what I saw in this forum post about having to force the port to speed 10, tells me I haven’t been the only person using a managed high speed switch (this switch handles 10gb connections at copper level).
An alternative much more likely problem is that the polarity of your TPIN+ and TPIN- wires are swapped somewhere between the ENC28J60 and the remote Cisco 300 switch PHY. Unlike 100BaseTX signaling, 10BaseT signaling is polarized, so you have to route one PHY’s TX+ signal to the remote PHY’s RX+ signal and similarly TX- with RX-. Not all engineers realize this, and given that Gigabit and 100Mbps Ethernet is predominant nowadays, I’ve seen several cases where various switch and router vendors have transposed their TX+ and TX- wires on some or all of their ports (in MDI, MDI-X, or both modes), possibly on purpose to improve trace routing. This non-compliant wiring works for all 100Mbps link partners and also works for 10BaseT devices which support a proprietary polarity detection and correction feature (not part of IEEE standard), but will not for the ENC28J60 and PIC18F97J60 family which don’t implement polarity detection and correction.