We should ask @mdma to chime in here too--I don't understand the failure in the new core either. Did you erase before writing?
Please see this thread:
You need to create a large pool of sectors for the wear-leveled device.
I am not sure how you will be able to avoid the bad sector or if the code will map it out of the pool. Matt likely knows how is code handles this.
Flash RAM erases to all ones (0xff) so when it fails you usually see some zero bits after an erase, but you can also have certain bits that you cannot write to zero.