Problem with Interfacing AD7730

This line does not send 3 bytes to the chip but only one:

  SPI.transfer(0x800010);

You have to issued three consecutive calls to SPI.transfer() to send a 24bit value.

In my opinion the datasheet is not very clear about how to use the CS line to distinguish different write acesses. I would try the same as you do but if that does not work, don't pull CS HIGH between the write to the communication register and the data that is to be written to the addressed register.