IMHO
1. Create a full backup image from the SD card before further operations (dd if= of=).
2. Copy u-boot with a working SD card not working on the SD card (using dd two command with saving the partition table). Check the start.
3. Copy replace all files from /boot partition (kernel, initrd, etc.). Check the start.
4. If that doesn't help, boot from a working SD card, plug in a USB adapter to a non-working SD card, use "chroot" in a non-working SD card and watch\check the basic startup files. Or gradually shift from non-working Sd card in a working system all the settings and the files you need.