This looks like the bad blocks flags in the flash have been falsely set. If all those blocks are actually bad, the kernel partition is not usable, and either the flash chip or the whole router needs to be replaced.
If it is a case of corrupting the flags, I'm not sure how to recover from that.