Before heading to the airport for the flight home I loaded on KiCad, spent the time at the airport comparing schematics and scratching my head. I get home and you've already got it nearly done!!! Wow. Looks great.
It would be good to have the spare pins available on the header.
GPIO29, 25, 24, and 23 are not available on the Pico but could also be available. An onboard led (GP29) would be handy for showing comms status, testing etc.
Did you have a plan for pin allocation? I've adopted the static config ability from FlexiHal together with the original JSON config so we could have the static config ready to go for this out of the box.
Also, I think I can improve the Ethernet performance. I found my Mbed STM32 code that I was playing with for the W5500 in interrupt mode (need to finished that for the STM32....). The RP2040 W5500 code already as DMA capabilities so we just need to take advantage of the receive interrupt vs polling. Not that it will impact the second core running the main code, but at least the servo thread can be optimised some.