The NAND FLASH boot loader code in the TWRMCF54418 bsp has a bug that prevents bit errors from being corrected when firmware images are transferred from FLASH to RAM.
In the file mqx/source/bsp/twrmcf54418/bootstrap.c the page transfers are configured for 2kb plus the full spare data length (2kb + 64 bytes) but this overloads the ECC engine and causes it to always report 32-bit errors and prevents it from correcting actual bit errors. The correct transfer length is 2kb + 60 bytes which includes the exact number of ECC bytes and no extra bytes.
nfc_ptr->SECSZ = BSP_PHYSICAL_PAGE_SIZE + NANDFLASH_SPARE_AREA_SIZE;
needs to be changed to
nfc_ptr->SECSZ = BSP_PHYSICAL_PAGE_SIZE + 60;
I've checked MQX 4.0 to 4.2 and all versions were affected.