( edit: I added the best working approach in my augmented reality framework and now also take the gyroscope into account which makes it much more stable again: Droid
After analyze your code above, in method 5 you are assigning the orientation data as follows,
resultingAngles[1] = orientationData[0]; // orientation z axis to y axis
resultingAngles[2] = orientationData[1]; // orientation x axis to z axis
resultingAngles[0] = orientationData[2]; // orientation y axis to x axis
You have done rotation in y z x manner. Try to change the orientation..
I think it might be the problem there.. Please check and let me know..
Please refer the documentation for the event values, http://developer.android.com/guide/topics/sensors/sensors_position.html
Thanks for your tough work..