ROM loading did not remove the 5 bytes of padding when loading the rom. This caused the last 5 bytes of the rom to never be read. These last 5 bytes contained the vector to set the PC to during boot.
Now that that was implemented, any rom can now load rather than a Hardcoded location for all roms.
BEQ was facing some issues as well. Seems that we did not take into account negivite numbers in relation to address resolution. This has now been accounted for by typecasting the 'unsigned char' into a 'char'