I was just testing some issues on reading/writing to the 512Byte so called 'user signature flash'. I find it quite useful to store calibration data etc.
After struggling with some unexpected results I find out that it might be a good advise to do the following sequence if you want to write new content to this part of the embedded flash:
// manipulate the buffer to the new content, here I just change the first value of the array for demonstration
buffer = 0xAA;
// write now the new buffer to the signature flash
without the erasing I don't get reliable results.
Hope that helps in case you try to use the same. If I overlooked something please let me know. I would be happy if it works without reading and erasing before you can actually write new content to the signature flash.