Cannot communicate with the W5500 using SPI

Issue has no relation to TCP or any API. This is hardware or low level software problem. You need oscilloscope with at least two channels (ideally 4) to connect one probe to clock and another probe to each signal and identify what is going on the wires when you write register and read register, and compare to the guidelines in the datasheet.

You can read register with known value VERSIONR, or better watch MISO when sending command to the chip through SPI - it must reply with 0x01, 0x02 and 0x03 to each byte sent, see here. If you do not get these bytes during operation, something is electrically or logically wrong.