A simple trick to emulate 50% transparency is to draw only half of overlay pixels. Also, for this feature I think it's enough to use grayscale. I'm not sure what colors are available for the bitmap overlay in CHDK, but on DSLRs there are around 40 gray shades always there.
My implementation (on 550D/60D Magic Lantern) "copies" the luma channel from YUV422 image buffer to BMP overlay; only the pixels where (i+j)%2 == 0 are changed. A copy of overlay is saved to card, due to memory constraints (and it's read every time the overlay needs refreshing). Not very elegant, but works.
This feature was actually inspired somehow from CHDK's edge overlay.