I encountered the same problem some months back. And after some digging I concluded the problem is in the compression library used to compress PNG data. Sometimes it just compresses the data block wrong.
My solution was to read the texture directly and covert to bitmap. But: 1) apparently this will work only for specific texture format 2) I use it in tools, not in the engine, so I have access to System.Drawing.