Were you able to get the gyro to work and return an angle?
From what I understand from your code, its seems like you are just getting the rate of rotation. According to the datasheet, the GYRO_*OUT_* registers contain the rate of rotation. The gyro rate needs to be converted to degrees per second and then integrated to get the angle.
I also worked on a driver for this gyro, but it seemed to be filtering out a lot of the readings, so I ended up with a lot of drift. This is how I did it:
https://gist.github.com/lopsided98/ef6c0f8cacacad9d398b