Problemas con el HMC5883L

Partamos de lo que me hace ruido, que es lo que he marcado, por qué usas I2Cdev cuando puedes usar Wire.h como la librería standard?

Mira lo que Adafruit recomienda en este link

Esta en el Administrador de librerías

Revisa si la librería y sus ejemplos si te funcionan.

Cual es el problema con I2Cdev? Pues que a riesgo de equivocarme es una librería que implementa un I2C virtual o sea para micros que no lo tienen x hardware. En este momento tengo dudas.
Otra cosa es probar el I2CScanner pero ya veras que no usa I2Cdev.h. Con el detectas si tu sensor funciona y si lo hace devuelve la dirección hexa con la que ha respondido.