Hi Tim,
You said you need to fix "one of" these devices. If you have at least one that is working you might be able to extract the system recovery partition from it using adb or a serial cable to get a root shell. My system recovery partition image is about 606MB and I used it with phoenixcard to create a bootable sdcard to restore my device.
I have been in a similar corrupted situation after running the sunxi-3.4 nand driver on a Linux booted from sdcard but luckily before doing that I succeeded to log in into my TXCZ (mine is V3.0, slightly different box and possibly different chips as I needed new dram settings) and save the image (in my case) from the nandi partition.
Regarding why the driver corrupts the nand, it might be that it has mismatching parameters (different block, oob or even ecc size, and/or different nand randomizer/scrambler settings) or also maybe it doesn't use properly the page pairing for MLC nands ...
I had a play with a custom u-boot based on
https://github.com/rgwan/u-boot-sunxi/tree/sunxi-current and I can say that the default boot0 from the android nand is written using the randomizer enabled (seed 0x4a80). When I tried to read it using nand read.raw the data was scrambled and when I used 1k reads, the code thought there was an ecc error and it attempted to correct the data on the nand...
This might mean that while the initial sunxi 3.4 nand driver might have some nand support, it might have a different idea about how to store and read data on the nand than the original android code.
Regards,
tkg