I don't think that there's any one answer to this but you seem to have most of the possibilities covered there. It could be a bad solder joint, a break in the printed circuit or a faulty X-tal.
I've got two P3's which show a "0" with 357 batteries yet run perfectly with 386's. They're a law unto themselves...
There's also the issue with the "heat compensation" gizmo under the IC which Phil B pointed out a while back...
http://www.dwf.nu/viewtopic.php?t=1837
Incidently the hairdryer trick is kind of risky as you're heating up a lot of very tiny 30 year old solder joints.