We tested the SparkFun 6 DoF IMU during build season, which contains an ITG-3200 during build season and read it successfully with this code:
I think you have the high and low byte of each register swapped. According to the datasheet the first byte (lower address) of each register is the MSB.
Also, we used the cast function rather than the conversion function to get a signed int. I'm not sure if that actually results in different values, but casting the value worked for us.
Good luck! The ITG-3200 worked pretty well for us as an improvement over the KOP analog gyro, with the signal not being susceptible to the effects of mysterious static buildup at inopportune moments...
