Your Memory.hdl has two RAM16K chips in. That is confusing the Hardware Simulator. Combine your loadaout and loadbout into a single loadram signal. See if that fixes the problem.
The failure with Max is happening when PC = 4. This means that the results of the instruction at address 3 are wrong. You can load Max.hack into the CPU emulator to see the instructions disassembled.
I've got your code. I'll get a chance to look at it sometime this evening if I don't hear that you found your problem.
The clue is that when you are about to execute the D=D-M instruction in Max.hack,
D-reg = 3, A-reg = 1 and RAM[1] = 5
but what is computed by the ALU is D-3 instead of D-5. Also notice that RAM[0] is highlighted in the simulator, indicating that the RAM's address is 0, so it is returning 3 instead of 5.
What's wrong with the RAM16K part in Computer.hdl?
Your CPU.hdl is good. Assuming that you have also correctly fixed your Memory.hdl, your Computer passes all three tests.