I think you'll want to take another look at this code:
//Apply Rotation glMultMatrixf(rotationMatrix); //Apply Translation glMultMatrixf(translationMatrix);
You should be using the inverses of these matrices (I'll have to leave an explanation of 'why' for another post...). Also, depending on how you're handling things, you may need to add a Y rotation of 180 degrees to adjust for OpenGL's '-z goes into the screen' convention.
The resulting code might look something like this:
glRotatef(180, 0, 1, 0);glMultMatrixf(inverse(rotationmatrix));glMultMatrixf(inverse(translationMatrix));
You can use a general matrix inverse function, or you can take advantage of the fact that the inverse of a rotation matrix is its transpose, and the inverse of a translation matrix is the same matrix with the translation components negated.
Once you've made this change, your rotations will likely be backwards; just reverse the signs of the Euler angles somewhere along the way and things should be fine.
I know I didn't provide a lot of information here, but maybe this will at least get you pointed in the right direction.
Oh, also, the use of quaternions really serves no purpose here. It doesn't hurt, but if I were you I'd just stick with matrices.