In that datasheet, it shows the ALT pins, most of this SoCs has a pin mux, and depending on which alt setting you used for 1 pin sometimes dictates the whole pinout for the rest of the pins in that ALT “group”.
also a lot of this SoC have programable Pull Up / Pull downs. And/or the PCB manufacture adds a pull up/down on the pcb itself … or for example if the spi NAND that’s on the board already, if for example it’s on spi0-0 since it’s already present, if you try to switch spi0-0 to some other pin the IC is still physically connected which might cause SoC pin to PULL some kinda way that conflicts with the ALTs pin Pull
* and sometimes if there is no pull direction set depending on the chip and pcb can cause some parasitic capacitance and drive the pin high when it’s meant to be low, so as a precaution you might want to force the pin the direction it needs to be and not leave that setting unset ( this usually isn’t an issue but I remember the raspi 1B had this issue ), just mentioning it cus if theirs some weird unexpected behavior happening , this is often overlooked, bang your head for days and might be something along this lines
* ah yeah and double check that the data-sheet pins on the SoC match the numbering scheme on the PCB pin outs , and if there is a difference between the two figure out which set they using to describe the GPIOs … remember that was a headache also , cus the pcb manufacture might be calling the GPIO header pins 0-15 for example but on the soc its p30-45 or w/e
** I remember when I was messing with the crypto chips ATTECC608 i2c chips, I had a bad batch of gpio jumper cables , and wouldn’t read on the bus untill I fanageled with the cables… couldn’t figure it out for the longest time lol stick the multimeter everything worked but the little sleeve was wider then the gpio pin , and the pin would rest on the plastic and not make contact 😐 , similar to your Ethernet cable issue, rule that out before you jump to conclusions , but as far as SPI is concerned , if the CS pin is causing issues backtrace SPI1, if it has spi1.0 1.1 1.2 etc all the spi1-CS pins need to be low ( or high?) , cus if one is set in the high ( or low?) it’s going to block the bus cus it’s signaling to the bus that it needs the bus, and could cause the issues mentioned above
Maybe later today when I hit the pc I’ll make a spreadsheet / chart… based off that datasheet similar to this https://elinux.org/RPi_BCM2835_GPIOs… or as you go fill in a spears sheet there in excel or w/e cus that helps a lot as a simple look up table , the one in the datasheet is okay but is mixed in with a lot of other things that might be confusing