Well I finally got a bit of spare time to dig a little deeper into the problem.
I think you may be up to something regarding the EDID data. On the laptop that I had been connecting to this TV all along, the EDID data is all there. However, I think it just remembers the EDID from before, because when I connected a different PC to the TV, it was not detected.
Now here's the interesting bit... when I power off the TV, the PC immediately detects it and gets the EDID data!
Looking into the schematic, it looks like each HDMI port has its own I2C EEPROM, presumably to store the EDID. These EEPROMs appear to be powered not from the TV itself, but from the HDMI port. This explains why the TV is detected properly when turned off.
So something is happening when the TV is turned on that is preventing the EDID from being sent. The I2C lines, in addition to going from the EEPROMs to the HDMI ports, also go to the HDMI switch IC and then there is also I2C going from the HDMI switch IC to the main SoC.
So perhaps when the TV is powered on, the SoC takes over the job of providing the EDID data (I assume the HDCP stuff also uses these same I2C lines?). Anyways, somehow this isn't happening as it should.
Time to bust out the oscilloscope again. Hopefully something simple like a pull-up resistor got blasted off the board, rather than an open or short on one of the BGA pads...