I clear the read fifo at the top of every txrx call, before entering the write/read for loop.
I also added this line after the SPI_WAIT call but before reading the fifo:
while (!(SPI0_SR & SPI_SR_RXCTR)); //Make sure rx fifo has data before reading
This should not be necessary, but once...