I've brewed about 8 all grain beers so far, and for most of them I simply added hot water a little at a time until I reached the desired temperature. In the last two batches I tried to make my life easier by using brewing software (ProMash) and some equations I found on John Palmer's site to calculate the strike and infusion water temperatures and volumes. Both the equations I found online and the ProMash software give me the same numbers, for example my last batch, an oatmeal stout called for 12.25 pounds grain and 16qt water at about 129 F to reach a protein rest temp of 122 F. Fortunately I added the water a little at a time because I reached the 122 F mark after adding just under 3/4 (11.5qt) of the water. I have had this problem on my both batches for which I used this method for calculating the correct temps. The only thing I can think of that might cause this is the thermal mass of the grain being far lower than what the equations account for. The strangest thing is that while the strike water is too hot, the infusion water to bring it up to saccharification temp is then too low, I could understand how both could be too high or too low but first too high and then too low makes no sense.

Has anyone else had similar problems, or any idea how I might have screwed up?

I use beersmith and have always put the strike water in first a few degrees over (7 degrees works for me) and let the tun stabilize to strike temperature (stirred and then checked with a known good thermometer). Then put in the grains and you will hit the mash temperature spot on. Like Bobby said above grain temperature does matter and must be entered in the beersmith or any other program to be accurate.

I used to have problems hitting my strike temps with grain first. Now I do something similar to WBC: I add my water to about 10-12deg F above my strike temp, let the mash tun equilibrate and allow the water temp to be even all over. Once it hits the strike temp, I dough in. Ever since I have done this I have nailed my temps.

I don't have a beer software tool, but here is how I calculate my temps:

I use 1.25 qts/lb of grain, usually, then go by this formula:

Tw = (.2/r)(T2 - T1) + T2.

Tw is your strike temp, r is your mash thickness ratio, which would be 1.25 for me. T2 is your desired mash temp, and T1 is the temp of your grains. Take a measurement right before adding just to be sure and make any last second changes if it's changed a little.

strike temp = (0.2/1.25)(154 - 62) + 154 for example. And remember basic math skills and the order of operations!

So my strike temp here would be 168.7deg F. So I'll heat my water up to ~180deg F, add to my cooler, let equilibrate and hit 168.7, then dough in.

Those are the exact same equations I used,
12.25lb grain
16qt water
for a grist ratio of 1.306
desired temp 122 F

(0.2 / 1.306)*(122 F - 70 F) + 122 F = 129.96 F

ProMash software gives the same numbers

The problem was I only needed about 11.5qt of water at 130 F to reach 122 F and this was with a cold 12 gallon stainless steel mashtun.

Now that im thinking about it maybe im taking the temperature from the wrong place, I've found that the hottest water in the mashtun quickly rises to the surface no matter how well the grain is stirred leaving a temperature gradient (coldest at the bottom and a few degrees hotter at the top) should I take the temperature at the bottom where all the grain is? I've always taken the temp at the hottest points to avoid over heating and denaturing the enzymes should I look for the lowest temp or somewhere in the middle?

The main reason I switched to adding water first is that I found that the mash temps varied wildly all over the mashtun when I added water into it. How did I know what my true mash temp was? If you add the water first, it allows everything to equilibrate and come to the same temp throughout. If you've ever taken temp readings from your boiling pot while you're heating water up, you notice it's different all over (obviously hotter towards the bottom near the burner).

If you let the water come to the same uniform temperature in the mashtun before you add the grains, you heat up your mash tun and the temp is the same throughout and you can hit your mash temps. Ever since I changed to this method I have hit my temps exactly and uniformly across the mashtun. I would really recommend trying it that way.

Another thing to consider is that that last 5.5 quarts of 130F water may not have had a huge impact on the overall temp of the mash. If you put all 16qts of water in you might have found your mash temp to be very close to 122F.

If you do the math you can prove this out. I plugged the following into the spreadsheet I created for temp calculations.