illusi0n the BL1 firmware (hardcoded into the SoC) on GXL and newer boxes checks for BL2 firmware at specific sectors of emmc, and if nothing is found, it then checks the SD card. In your case it finds BL2 on the emmc so uses it, but then I guess it reaches bad sectors as the UART output shows BL2 load but only the start of the BL3x stages that follow. It's not impossible to recover from this scenario, but it's a non-trivial fix and may depend on finding the correct fip sources for signing the boot firmware for your device.
In short [sic] you'll need to open the box and short-circuit specific pins on the emmc chip to disable it, which results in BL1 failing to see it and then checking the SD card. In the absence of a special SDIO board Amlogic uses in development (which you cannot purchase) this is the only way to force this behaviour. You will also need a bootable SD card that contains signed boot firmware and u-boot. If you can compile new boot firmware, you should be able to boot from SD card to a point where you can either overwrite the broken firmware on emmc with good firmware or (what I would do) zero the initial sectors of emmc to erase the incomplete firmware - it will then always fail to find BL2 and always check the SD card.
Creating signed boot firmware is not that hard, but, part of the signed firmware recipe uses files that determine the RAM timing data (which RAM chips are supported). I have a collection of sources from various places, but there's no guarantee the files I have will support the chips in your box. If you are lucky, your box is from early in the S905X2 production and follows the U200 reference design specs.
I would start with building an AMLG12 image from the amlogic-master branch in my GH repo - as this is already using newer versions of u-boot and amlogic-boot-fip packages that have things for U200 support. Create an AMLG12 image to prove the build-system workls, and then you can add a scripts/uboot_helper entry that uses the recently upstreamed u200 defconfig for u-boot and the u200 linux device-tree (dtb) file. If you're lucky, the fip sources for the U200 have the right memory timings for your device and the output will be a bootable SD card image.
Right now I don't have time to spoon feed these changes so you'll need to take some initiative. Having a UART cable handy shows you might be technically inclined .. I hope.