How to down-clock RAM?
I recently ran in to a similar issue when trying to squeeze a little more life out of an old iMac. I could only get 800mhz DIMM's but the specs say it needs 667mhz. I can interchange 1x 667mhz DIMM with 1x800mhz DIMM but a single 800mhz DIMM or two 800mhz DIMMs result in a failure to boot.

My hunch was that the motherboard thinks it can run at 800mhz so doesn't downclock it to 667mhz unless there is a slow DIMM in one of the slots forcing it to.

I did some research, and discovered the timing information is set in the SPD data stored on an EEPROM on the DIMM. I booted an Ubuntu 16.10 liveUSB on the iMac, apt-get installed i2c-tools, modprobeed the i2c-i801 module to enable the SMBus (which talks to the DIMM EEPROM) and read out the SPD of a working and a too-fast DIMM with i2cget. After a lot more research, I merged the timing information from the working DIMM in to the SPD of the too-fast (but larger) DIMM. decode-dimms can calculate the correct CRC. I then wrote the modified data back to the fast DIMM with i2cset.

I can now pair that down-clocked DIMM with an unmodified 800mhz DIMM, and the system correctly downclocks  the memory bus to 667mhz and boots.

FULL DISCLOSURE: After about a month the upgraded machine started hard-crashing and was replaced by a 2017 iMac ;)