I changed it to this:
uint8_t tx_buf[3];
uint8_t masterDataReceive[3];
lpspi_state_t masterStateSPI0;
LPSPI_DRV_MasterInit(SPI0, &masterStateSPI0, &SPI0_MasterConfig1553);
LPSPI_DRV_SetPcs(SPI0,LPSPI_PCS0,LPSPI_ACTIVE_LOW);
holt_6135_reset();
tx_buf[0] = enMAP1; tx_buf[1] = 0x00; tx_buf[2] = 0x00;// send D8
LPSPI_DRV_MasterTransferBlocking(SPI0, (uint8_t *)&tx_buf, (uint8_t *)&masterDataReceive, 3, SPI0_TIMEOUT);
tx_buf[0] = FASTREAD(10); tx_buf[1] = 0x00; tx_buf[2] = 0x00; // Read register 0x000A (10) = send 28
LPSPI_DRV_MasterTransferBlocking(SPI0, (uint8_t *)&tx_buf, (uint8_t *)&masterDataReceive, 3, SPI0_TIMEOUT);
and when it sends the first message it does only send the first byte. It's not followed by the nonsense bytes, but it's also not followed by two zero bytes despite the 3 in the transferbytecount.

Very confused. When I had it working, on the first message I was able to send a one byte frame followed by three byte frames:
