I get that
2^32 = 4,294,967,296 and 2GB is for the OS and 2GB is for the process, but why does a 64 bit OS only give 4GB of address space? Should it not be
2^64 = 18,446,744,073,709,551,615 which when divided evenly amongst the OS and process is a lot more than 4 GB?
2^32 (4GB) is the maximum amount of address space that can be addressed at one time with 32-bit pointers. So a 32-bit process is necessarily limited to an address space of 4GB, because it uses 32-bit pointers, regardless of OS.
Note that this is purely a restriction on virtual memory that a process can have mapped into its address space at one time.
Your calculations are correct. Running a 64 bit system you don't need to worry about the address space (its much more than your system will support). If the RAM size isn't what it is supposed to be, the problem lays somewhere else. Perhaps your mainboard is limiting or some of the ram sticks are not supported/broken.