Your RAM8.hdl is correct and passes RAM8.tst on my computer. The problem must be with your Register (or Bit) implementation.
You can debug this by creating a projects/03/a/test directory and copying only RAM8.hdl, .tst, and .cmp files into that directory. That will use the built-in parts for everything else, and it should pass.
Then copy your Register.hdl into the test directory. If RAM8.tst then fails, Register is the problem. If it passes, continue by copying your Bit.hdl.
If you find that either your Register.hdl or Bit.hdl is causing the problem, and it passes its test (copy the .tst and .cmp files into the test directory), please email me the failing HDL. I would like to improve the test(s) to detect the problem.
I don't know enough about the Hardware Simulator's internals to give a detailed answer.
The BUILTIN keyword is documented in Appendix A as
the HDL body of a built-in chip has the following format:
BUILTIN Java class name;
where Java class name is the name of the Java class that delivers the chip functionality.
Normally, this class will have the same name as that of the chip, for example
Mux.class. All the built-in chips (compiled Java class files) are stored in a directory
called tools/builtIn, which is a standard part of the simulator’s environment.
It must only be used by itself in an HDL file in a directory that also contains its corresponding Java .class file.
The easiest way to force the Hardware Simulator to use the built-in version of a part instead of YourPart.hdl is to temporarily rename your HDL file.