As was previously mentioned, I think you need to give more information on your process, if you want to get anything other than a stab in the dark answer to your question.
You say you heated the water to the right temperature. Was that the mash temperature, or the temperature that it needed to be so that you would hit your mash temperature when the grain was added?
Did you stir during the mash?
Is the mash tun insulated?
What temperature was your mash at mash out?
There are so many parameters that can affect efficiency, but I am confident if you described your process in detail, you would have a great chance of getting the right answer, or answers, to your problem.
Cheers.
I pre-heat my mash tun with 10lt boiling water, whilst waiting for my mash water to heat.
Then I drain, add the amount of water in beer smith (plus small amount for dead space) and then I add the grain slowly whilst stirring. I measure the temp of the water on the way in to the mash tun with an instant read thermometer (Cant remember the brand but its awesome. I use it on my smoker. Cost about ã30).
Then I check the temp of the mash and if too high, stir to cool. If too low, add a small amount of hot water to match (although, normally I am within .2c).
I do not stir during my 60 or 90 minute mashes. <-- Is this where I am going wrong?
I then batch sparge so ... I vorlof (lol) and then drain into boiler. Once drained, I add the next step of water, matching temps as before. Stir thoroughly and then leave for 10 minutes.
Vorlof and drain again. sometimes the recipe calls for more than one of these.
Then I add first wort hops, bring to the boil and carry on ....
Anything look untoward in that up their? ^^
Only thing I can think is that the milled grain for this second one (that I missed OG by almost .20) had been sat in my Garage for 3 weeks. BUT it was in a vac sealed packaged ??