Anyone who was delved into the morass of civil war statistics is well aware that we have various different numbers we can use for measuring armies with various different meanings. The two extreme values are combat effectives (the number on the battleline only) and aggregate present and absent (the total number of names enlisted, including those physically not with the army).
Now, when McClellan (or any other officer) makes an estimate of enemy strength, which one of these numbers is he using? This is important as if he was using the highest categories of enemy strength he's actually correct in his "phantasmal" numbers. If he is using the lowest he is wildly overestimating. Unfortunately he never actually says.
We do know that the numbers he adopted for the force in front of him at Yorktown after the siege were from a captured ration roll, showing 119,000 men. This is an expression of the aggregate present and absent. After this he consistantly uses the figure of 100-120,000 until not long before the Seven Days. In this there is absolutely nothing wrong, it is a very reasonable deduction (approximately this figure appears in Livermore). Of course, viewed from the angle of combat effectives there seems to be a lot wrong. The question is what did McClellan think these figures were, effectives, present or aggregate?
Here we don't know, and this is the crux of the problem. The best idea in my head is to keep an open mind and look at how he behaved, the clues are likely there....