Looks like I am the first one to reply to your question. I am probably not best to tell you how the bootloader works. Basically, it is pre-loaded ROM code that has a number of options you can select prior to boot, that will load drivers specifically for the boot device you want to use, so that the booting device can read its next set of instructions to continue with the boot up sequence. There is a specific address that the booting device will go to looking for code, so if that is not right, your boot will definately fail.
It sounds like you have done most of the basic troubleshooting. I would say that your problem may fall into one of three catagories:
1) The NAND Flash routine did not work correctly (which would include the start address of the boot code not being at the correct address). I would reformat NAND and reflash boards that didn't work and see if any of them responded. If none of them do, this is probably not the problem.
2) I would try to reverify that boot pin settings are made correctly, manually. Hold the processor in reset and look at the voltage on each boot pin and verify that it is correct, and not in some mid-position, held there by something you did not expect. (It might change after the boot procedure.
3) The last thing is that maybe one of the timing/nand values selected may not be the correct one. For example, NAND address cycle. Try selecting a different (larger?) number. This seems like the most plausible explaination for why some boards are working and others are not.
One other thing you can do is to boot from an SD slot with code that says nothing other than go boot from NAND. Then, if you get failures, you can start adding small changes to the SD code changine parameters until you find the one that is causing you problems. Should be rather simple code, but I don't have an example in front of me to give to you.
Cheers,
Mark