I think the problem is this:
dataBitMap.CreateCompatibleBitmap(compatibleDeviceContext, width, height)
You want to create a bitmap that's compatible with the source DC, which has the appropriate color depth and other features. Then you can select that into the target DC, which will give it the appropriate color depth, size, and other features.
Instead, you're creating one that's compatible with the target DC, which at this point is a 1x1 black&white DC, as explained in the CreateCompatibleDC
docs. Then you select that into the target DC, leaving it exactly as it started.
That's why you end up with a bitmap with 1 plane of 1bpp.
See the Capturing a Image sample (in C, and horrible C at that, but hopefully you can follow it) for an example of how to do it. But I believe this is the only step you're doing wrong.