Can you provide a small sample demonstrating this failure?
If you try Samples/UserBlock/userblock_sample.c to first write the data, and then re-compile it with the writeUserBlockArray() call disabled, does it read the data back?
How big is your user block? What do you see if you run Samples/UserBlock/userblock_info.c?