replacing crystal with TCXO

Multi-byte SPI works like this:

  1. CS is asserted
  2. The address + R/W bit are sent
  3. N bytes are read or written (the address auto-increments)
  4. CS is deasserted

You can't do multi-byte access in reverse order. Only the first address you send matters. If you start at address 6 the next byte you read will be address 7, which is one of the alarm registers.

I don't understand your code: x << 8 will always be zero if x is uint8_t.