The first thing to realize about the PC is that its default operations is to increment every clock cycle. Jumping and Reset are special cases. Also, remember the priority on the PC's control signals: reset overrides load overrides increment.
There are several control signals that are only active only during a-instructions or only during c-instructions so it is handy to create 'aInst' and 'cInst' signals that can be used to enable those signals.
For example, think about when the CPU should jump. It only jumps when it is executing a c-instruction and a jump bit in the instruction and its corresponding ALU status bit are both set. (Hint: make an aluPos status signal from aluZr and aluNg.)
If you want to, you can email me your CPU and I'll send you back comments. Be sure to include any helper chips you may have made for its implementation.
--Mark