My data plot is sampled at 100Hz, while yours 10Hz. I think there may be some issues in your Arduino I2C reading. Please use a logic analyzer to monitor the I2C bus between your Arduino and BNO055 to see if there are some clock stretching issues. You should get smooth data from BNO055, not with many +/-0.06 spikes.
Thanks for your support. I believe that the data is affected because of the length of the cable I am using. I noticed that I get good values with shorter cables, but with longer cables (>1 m), the data gets corrupted. I would re-confirm this experimentally and update this post with my findings.
After testing, I confirm that the error was due to data distortion over long cables while using the i2c protocol.
I resolved the error by using an i2c bus extender circuit.
Thanks for the support and analysis.