Acceleration sensor gives wrong values
Sensors will not always provide ideal behaviour. Each accelerometer that is manufactured would give slightly different results for the same scenario, due to the unique physical characteristics of each. To get accurate results you really need to calibrate each sensor individually. This requires testing under different conditions.
The issue you are facing is due to what is called cross-axis effect. This is the tendency of a value on one axis to affect the output of another. This is generally caused by an imperfect alignment of the sensor axes during manufacture. This is inevitable, as perfect orthogonality is nearly impossible to achieve. There is no way to correct this by modifying the sensor - the only way to compensate for this is to perform calibration testing to determine how much values on each axis impact one another and adjust the outputs accordingly.
You may also want to look at another method of obtaining displacement rather than simply double integrating, as this can produce extremely large errors over time and distance and can result in a large velocity and displacement drift.