You're not going to like this answer.
You have to fire John ASAP. Even if his complaints are justified, he has messed up the whole hierarchy with his private conversations. He's a toxic employee, and the only question left is how much damage you are willing to let him do, and how many other employees you're willing to let him "spoil."
Next, you need to evaluate Jane's behavior. Were John's accusations accurate? If they were, can you salvage her? You may just have to "clean house."
Remember this: Every hour your toxic employee spends "infecting" other employees is an hour you're going to have to spend salvaging the "infected" employee. If he's talking to half a dozen other employees, you may never get ahead of the situation.
My company went through this very thing this past summer. We had two toxic employees in a department I don't manage, but they were degrading everyone's morale, including my team's. It got to the point where they were sabotaging our sales and customer service efforts intentionally in a power struggle with the VP of Operations. We tried to salvage them, but ultimately had to get rid of them. Within a week, the whole company's "vibe" improved. People were less stressed, happier, and thus more productive.
Think of it medically - You can either clean the wound, get your stitches, and take your antibiotics (face the pain now), or wait and have the limb amputated when it turns gangrenous (rebuild your department from scratch).
Fire John now for insubordination. Decide if you can salvage Jane or not. If you can, put your efforts there. If not, don't waste any time getting rid of her, too. Nothing good will come of waiting, and John's already proven direct approaches won't work with him. He's already lost.
There is a lot of disagreement in the comments below. Some have likened my approach to that of a Mexican (drug - inferred) cartel.
These are, to me, from those who haven't had to deal with this situation. I've been through it three times over the last 25 years, twice as a line-level employee and once as a manager. I have seen what happens when these toxic employees sew their seeds. I have seen the complete lack of results in trying to "rehabilitate" them. I understand your emotions, but this CAN'T be an emotional decision. You can't sit and wish an employee to find a new attitude. These "toxic employees" were lost months, if not years ago. There is just no way back once they've become this bad. Wishing there were does not make it so.
You can try all you want, but that means first "quarantining" them in order to prevent further damage (a process that in itself may "justify" their grievances in their view) and then rebuilding them. Not from zero, mind you, but from negative. Is that where you need to put your efforts? Do you do this at the expense of your other responsibilities? At the expense of your customers? At the expense of your business? At the expense of the well-performing employees?
Even if you are successful (and I've never seen a success), at the end of the day you only have an employee you can't trust, and you've sent a message to the rest of your staff that you tolerate that level of insubordination and behavior. Those who do well come away with a "Why bother?" attitude, knowing that performing well isn't appreciated or recognized, but that only insubordination will garner recognition.
It may sound harsh, but you are doing far more harm to the rest of your organization than you will ever to as good trying to rehabilitate someone like this. Not terminating John harms your company, your team, likely your customers, and ultimately John, as no responsible manager will ever be able to trust him, again, and he's better off starting fresh somewhere else.