すみませんglmではMatrixをVectorの右からかけますが、GLSLでは左からかけています。
プログラム内で複数のMatrixを掛けて計算したMatrixはプログラム内のVectorを変換するのには使えますが、
シェーダーでは計算の順序が違うのでおかしなことになってしまっていると思います。
1つのMatrixをプログラム内とシェーダー内両方で使うにはどうすればよいのでしょう。