I'm currently trying to replicate the Hack CPU from nand2tetris entirely within VHDL, hopefully to run on my Basys-7 board in the future. I've run into a roadblock when implementing the course's program counter module alongside with a testbench I wrote for it. Below I’ve provided my current modules/submodules, comparison files, my testbench's waveform diagram, and the direct nand2tetris implementation and its circuit diagram to clarify.
One issue that's immediately concerning is that my waveform test output shows as unassigned for the first 7 clock cycles when the comparison files and my intuition says it should report otherwise. From further cycles I can see that the functionality of the counter’s reset, load, and increment controls are fine but there seems to be a problem with values staying within the counter’s register? Following the circuit diagram, I noticed the initial tests with control signal ‘000’ (for reset, load & inc respectively) lead me to believe that there would've needed to be an initial value of zero already within the register for the testbench to work properly. I’ve tried to directly wire a logic vector equal to zero inside of the program counter’s register but that worked to no avail (the waveform diagram even ended up being the exact same!

).
Even if this observation isn’t a lead and or/unhelpful, I'm sure what I have needs some work so I wanted to ask for help. I also appreciate any tips on simplifying my code as well as this is also the very first time I’m learning VHDL and using "grown up" HDLs in general.
Thanks everyone.
My VHDL Module Files + Comparison Files:
https://www.mediafire.com/file/v4f9ti9yzsewvcc/PC_Modules_Troubleshoot.rar/fileImplementation in nand2tetris HDL:
https://people.duke.edu/~nts9/logicgates/PC.hdlCircuit Diagram Source:
https://fkfd.me/projects/nand2tetris_1/