Overlays and glReadPixels()

Was wondering if a call to glReadPixels will get everything including the overlay planes. I want to capture everything drawn in the window where I render the OpenGL scene.

Nope. Overlay planes are running in a different render context and probably with a different color mode (color index). You need to do two glReadPixels and combine the result “by hand” based on the overlay palette and transparent color index.