AHRS algorithm under continuous linear accelerations
Firstly, make sure you understand two key points here:


Attitude determination from IMU data alone is inherently ambiguous in the presence of linear acceleration. Without additional knowledge about the nature of the accelerations, there will always be an upper bound to the accuracy you can achieve.
Accuracy is limited by the drift in the integrated gyroscope measurements. With perfect gyro data and integration, the accelerometer data would not be needed at all. The closer you can get to perfection the more you can ignore the accelerations.


The selection of orientation algorithm is largely irrelevant here. All of them work on the same principle: using the direction of gravitational acceleration to drift correct the integrated gyro data, with some variable amount of weighting between the two. If you have tried tuning the parameters and not achieved the results you want, you are unlikely to do better with a different algorithm.

So, there are essentially two things you can do.


Improve the accuracy of your gyro integration.
Model the nature of the linear accelerations somehow.


The second option is hard to discuss because it depends on the details of the motion you are studying. There are some simple tricks like discarding or de-weighting accelerations outside some given range. Essentially these come down to modelling the linear accelerations as being brief occurences only. If your system is under continuous motion they are not of much help.

There are several things you can do to improve your gyro integration, though:


Get the best possible estimate of gyro bias. Take static gyro readings for several seconds immediately before use, and average these to get your offset values. Don't rely on a one-off prior calibration.
Try to minimise drift due to temperature. Let the IMU warm up to steady state operating temperature before calibration/use. Try to keep it at a steady temperature during operation.
Improve your calibration model. Consider including cross axis effects and non-linearity as well as just scale and offset.
Use a better integration method. There are some ideas in the comments on your question already.
See if you can track gyro drift. If the orientation algorithm is having to consistently correct drift in a particular direction, this can be detected and used to gently adjust the bias values.


You are right that the sensors you are using are not of the highest grade available. However, it is possible to get very good results from consumer sensors if sufficiently well characterised and calibrated.