Ok, I just found out a few things that fixed the circuit.
1. After extensive testing with a multimeter, it turned out one bit was disconnected which meant incorrect data was always programmed. so I used extra solder on that PCB trace.
2. I changed all 10K pull-ups to 3.3K pull-ups, and the pull-up attached to the transistor and the port pin is now 1K.
3. I added a 4.7K resistor bus across pins 1 through 9 of the 74HC245 to make it function as 74HCT245 because that's the only way an LS output can communicate with an HC input (was to connect the output and input with a pull-up resistor)
and 4, compared to the original circuit, I added a 22uF capacitor close to the power source (between 5V and ground).