What stain? Did they apply a stain last fall? I seriously doubt that your painter knows what he is talking about. Yes, he may not be able to cover the shingles with a coat or 2 of cheap paint. A good primer and then a couple of coats of good paint are the way to go if you want it to last. Steve:'s choice is probably a good one too.
I think that you need to do your homework by calling out a couple of other good professional companies in your area for an estimate. If they concur with your painters advise, then go for it. If they disagree, remember that it is even more expensive to tear off all the shingles and replace them. Stripping paint off shingles is not really an option and peeling paint will keep peeling until all of it is removed.
By the way, your contractor did not pay the painter yet. Why did you pay the contractor for work that was not done? You may have had to for closing a construction loan but in that case, you should have had an ironclad guarantee that the work was done and done right. I know that it is tough to hear the coulda-woulda-shouldas now. Did you have a lawyer? You might want to contact one.