I too have been encountering many issues using BCH16 and UBI. I am using a 2GB MLC Nand from Micron. I have BCH16 working great in U-Boot and i simply write a ubi image pre-formatted so i don't use any UBI functions within U-Boot. However, i have yet to get it to fully work in the Kernel. So i would be interested to hear how you make out!
Basically, i initially found that the UBI drivers in the kernel were too strict to work for the MLC NAND. They expect to read back all F's after an erase, but i found that i was seeing persistent bit-flips with the MLC NAND. I had to modify the drivers to accept correctable bitflips even immediately after an erase. That fixed my failed Torture Test issues, but now i am having a different issue. Basically on first boot everything is great, the UBI rootfs attaches and all is well. However, on the second boot i receive many ecc errors ONLY on reading the ec headers. I am still able to attach to the rootfs fine and everything looks good, so i am not sure what is going on exactly. I am thinking i am having an issue with the BCH16 stuff, which i pulled from the OMAP3 tree (http://arago-project.org/git/projects/?p=linux-omap3.git;a=summary).
Unfortunately it will be awhile until i have time to dig in further. For now i have just written the rootfs using BCH8 to just avoid the issue altogether. But seeing as how im using less reliable MLC NAND i am really going to want to get BCH16 working at some point i think : ).
Good Luck to you!!!!