I've got everything working well using single byte payloads but when I try to send multiple byte payloads (tried 2 and 5 bytes so far). All I get is the last byte sent no matter how I try to send and receive it. I've tried 10 different code layouts on the transmit and receive side and checked the registers 100 times yet I can't figure out the problem. Both a and b end up displaying 3 instead of a displaying 1 and b displaying 3. Does anyone know what's going on?

Code for 2 byte receive:

Code:
low csn
shiftout si, sck, 1, [01100001, 0, 0]
shiftin so, sck, 0, [a, b]
  

high csn
code for 2 byte transmit:

Code:
low csn
shiftout si, sck, 1, [10100000, 1, 3] 
high csn