Thats it! My bitwise OR was the problem, thank you.
I would have replied sooner, but I somehow corrupted my Pro Micro. It was showing up in Device Manager as an "Unknown device" so I reprogrammed the bootloader using a USBASP programmer, which made it show up as a COM port again, but I can't program it anymore. It shows up as a COM port then disappears after seveal seconds. If I time it right, I can make an attempt to program it, but the Arduino IDE throws a bunch of errors starting with "avrdude: ser_send(): write error: sorry no info avail"
This is my second Pro Micro I've killed in this project so I'm thinking it must be my circuit doing it.