Bradley:
I hope you got this working by now.
I was browsing old messages and see you fell into the same trap I did. That is that the data sheet instructions for this part are mostly crap.
You are sending a 0x90 as the first byte. The data sheet should say that you ALWAYS send a 0x10 to do WRITE of the register.. I have no idea why the English challenged author of the data sheet included any reference to 0x90. You NEVER want to read the address register. You want to hold a local copy of the register address and ALWAYS write the register stuff from local memory. I have no idea why the National guys even put in a function to read the address.
I see that someone at TI finally told you to write 0x10 as the first byte rather than 0x90.