Invensense MPU9150 Accelerometer Raw Values Even
Getting 16-bit resolution from an ADC is difficult. Power supply switching noise can easily be coupled into your ADC causing loss of resolution. The fact that you only get even data with some scale factors tells me that the ADC is OK at some scale factors and the noise is being amplified.

I have seen this behavior with successive approximation ADCs. https://en.wikipedia.org/wiki/Successive_approximation_ADC  For example, lets say the true value of a reading is 61. The ADC will successively test for smaller and smaller bits, Is the value >=256?, is the value >=128?, is the value >=64? Lets say that because of a noise glitch, it thought it was >=64. Now, it will be testing for values >64, and when it tests for the lowest bits (assuming no more noise glitches), they will be zero.

This issue would cause lower bits to be zero with a higher than expected probability, but not always, since a comparison won't always happen coincidental with a noise glitch. It would be interesting to analyze a large amount of data. You would need to do something to assure that a large variation of data occurred, this could be a simple as manually moving the module around. Assuming a fairly random input, each of the least significant bits should be "1" an average of 50% of the time. If not, then there are errors in the system.

To truly diagnose this, you need to demonstrate that the erroneous readings correspond to the noise glitches. This may not even be possible since this is an integrated system.

Cheap power supplies produce a tremendous amount of high-frequency noise. You could use a quieter power supply, or filter the one you have. An extreme modification would be to power this module with a separate linear supply, with just one ground connection between this module and the remainder of your system.

Finally, it is possible that the module could meet it's navigation specifications even though a few LSbits are invalid.