Why aren't latches used for registers?
Consider this circuit, which is a part of the CPU that you will build in project 5.
When an instruction like D=D+1 executes, the output of the D Register needs to be incremented and stored back into the D Register.
If the D Register is latch-based instead of DFF-based, as soon as the dest-d control signal goes high, the ALU will increment the D Register output and send it back to the D register which will send its new input to the ALU which will....
The circuit will continuously increment as fast as it can.