if you've had it at 20 psi for a month it will be extremely over carbonated. Personally, I never tried to force carbonate at room temp, I always put it into the kegerator before hooking up the CO2 because it will absorb better at colder temps. Here is a really good article on how to set up a kegerator that I used in setting up mine. Your line length and height will determine what your serving psi is for your system. These calculations will get you close but you may have to fiddle with it to determine where you want it on your system.
My typical scenario is to put two new kegs in and set it at 30 psi for a day, then drop to 20 psi for 4-5 days. Then I drop to my serving pressure (which on my kegerator is 8 psi) and sample. I determine from there if it needs any more. If it is overcarbed, I unhook the gas, and pull the pressure release valve to bleed the keg. You will likely have to do this over a period of several days to get the keg to settle down at this point.
I assume that when you're saying you're getting loads of foam with little carbonation that your beer is rushing out of the tap at the 20 psi setting? Ideally you want a pour to take about 10-15 seconds. If it is rushing out too fast you are forcing all the CO2 out of solution and will have loads of foam with little carbonation. Take a read through that article and I'll be happy to answer any additional questions that you may have.