Depth buffer with read pixels

So I’m drawing a few sets of objects, each requires me to clear the depth buffer to draw, which works fine for each list, and the z orders are correct until all of the objects are drawn together. Obviously, with the depth buffer cleared the objects draw correct relative to themselves but not to the other sets of objects.
To remedy this problem I am attempting to use glDrawPixels and glReadPixels with the depth buffer. I clear the depth buffer, and then load it into memory, I then commit many functions which require the clearing of the depth buffer, once they are complete, I drawpixels, I then draw the final objects, and then readpixels. I repeat this process, yet the objects are still drawn relative to objects of their type? Any thoughts on why this might be occuring? I don’t have Read or Draw in a display list, it is all drawn in realtime with the boost library.