DHT11s read fine from loop, but first one in list doesn't work when in timer...?

It is difficult to have this type of code in an ISR. Basically you get a deadlock as the code fills the serial buffer and waits for the UART to transmit but that does not happen as the UART ISR is locked out.

I recommend that you remove the ISR and use millis() for period checking in the loop().

Cheers!