Freezing and BSODs are mostly caused by either bad RAM setting or bad RAM sticks. Start by going to your RAM manufacturer's website and looking up the specifications for your exact sticks of RAM. Then go to memtest.org and download MemTest86+. Burn the ISO file to a CD. Then restart the computer and enter BIOS. Set the RAM to run at the manufacturer's specs (i.e. set the timings, voltages and speeds). Then set the computer to boot from the optical drive. Restart and let MemTest run overnight or through at least 7 passes. Come back with the results.
Something else you can test while waiting for a chunk of time to run MemTest is the CPU's temperature. Download Prime95 and RealTemp. Install them and run them at the same time for at least an hour. Prime95 will push your CPU to full load and RealTemp will measure the CPU's maximum temperature. I don't think it's likely that overheating is the cause, but it's easy to check.