AVR SPI slave first byte problem
The answer is in your question already. Simultaneously being the key word.

Interrupt is called on RX complete, which is when the a byte from master has already been received. This must then also mean a byte from slave has already been sent, and your code sets up the next byte to be sent.

You have to set up the first byte to be sent before the communication starts.