Environmental control system does not work properly unless connected via USB

Get a 12V-5V buck converter, and use that to power everything (don't connect the peripherals to the Uno's 5V pins but directly to the converter). Connect it to the Arduino's Vcc pin, not to the RAW pin, as that way you bypass the on-board regulator.