8-Bit Program Counter Implementation
Your register is propagating it's output based on the "clock" level and not it's transition (aka transparent register), which is creating an unstable loop. For that circuit to work, you'd have to:


Change that part to a register that changes it's outputs only at the clock's transition from low to high.


or 


Add a second register after the first that's clocked by the inverse of the first one's clock. By doing so, your circuit still takes 1 clock to output the changes to the bus, but it does so in two steps, preventing the register's changing output from affecting it's own input.