It's been awhile since I've used the GDI, but I'm assuming you're talking about the BitBlt function, right? What exactly are you ORing together? As I recall BitBlt just takes a source and destination HDC, rectangles and some flags.
Are you ORing the bits of the bitmaps to achieve the overlay effect? That won't work, as the OR operator is both associative and commutative. In other words,
a | b == b | a
and
(a | b) | c == a | (b | c)
which means that the order in which you OR things has no effect on the outcome. You just need to blit each bitmap one at a time in order to get an overlay effect.
If this doesn't help I apologize, I may have completely misinterpreted your question as it has been a few years since I've even looked at the GDI.