The issue was that we used GL_ALWAYS for depth checking here which would lead to the depth information from objects being messed up.
It would not represent which object was closest to the camera.
Now this is a very small and simple fix, I have looked at the code and I think it should be fine but I want it to be reviewed so that I'm not making a terrible mistake.
One of the biggest red flags is that I can't really figure out why we would ever want to have GL_ALWAYS for a depth test and this leads me to believe that I'm missing something here.