Ethically, the engineer and the company are both in grey areas. The OP says the engineer isn't doing anything strictly against the rules, and their are no legal restrictions on a company promoting somebody who is less competent. So he and the company are at an impasse. The company has a few options. Terminate his employment (rules vary by location), ignore him, or try to make him happy again.  All of these will cost the company money. You can't force him to sign off on things, because that would destroy the whole point of having a P. Eng.

My first suggestion would be to offer him an apology and a substantial raise. The apology should come from the people who actually passed him over, but you apologizing is better than nothing. Find out if he has grievances beyond the promotion. See what you can do to address those. If it were me, that would be the only way I'd consider staying. Plus this is probably the company's cheapest option at this point. 

The company can fire the engineer, pay severance, miss contracts, and be unable to get out updates, or they can continue as is until the engineer leaves (same consequences, but uncertain timeline and no severance), or they can pay the engineer a higher salary until he leaves. And make sure that in the future, they've got at least 2 Professional Engineers on staff so they don't end up in the same boat again later. The company screwed up, and there only choice now is how they handle it.

I'd also be very, very cautious about putting this guy in a position of power ever again, and once I had another couple of engineers who could do his job, I'd look into letting him go with a decent severance package to avoid future antagonism. Right now, the company put themselves into a bad place, and it's going to take a lot more time and effort to get out of it than it took to get into it.