Pose 3D character using bone orientation data from motion capture? (normalise / retarget / preparation?)

I want to use motion-captured data to pose mixamo characters, but the results are very inconsistent and seemingly random across different models (they all share the same bone hierarchy and bone names):

The motion capture data is an array of quaternion [{x,y,z,w}, {x,y,z,w}, …], and each quaternion represents the orientation of a specific joint. I suppose it has something to do with the bones setup (position / orientation / bone-rolling?) or 3D world coordinate, but have no idea if this could be fixed in three.js; or are there something I should do in 3D software / exporter to normalise a character to this kind of purpose?