Wrong Question
Your problem, IMO, is that you're asking the wrong question. Your problem is not: "How do I manage Alice?" I mean, it is understandable that this is your question, given that you are a manager, and managing direct reports is literally your job description. But you recognize that your situation falls outside of the conventional scenario, which means you need to start looking at everything unconventionally. And I would start by questioning your job description.
The right question is: "How do I manage mid/upper management?" Stop trying to manage downwards, and start managing upwards. Instead of stifling Alice, you need to emulate her. She is clearly doing something right, and everyone around her pushing back is clearly doing something wrong. So why are you trying to defend the status quo and put down the reformer? The first thing you need to ask yourself is: "What do I want?"
Identify Goals
If you just want to live an easy life and have a mediocre career that involves minimal conflict, then you have to let Alice go. You cannot retain her. The only way she will stay is if the company crushes her spirit and she fails to do the job-hopping that she openly threatens. Be thankful you got to see her in action, and enjoy the fond memories of having managed a rock star for however long you had her. Use what you learned from her to identify future diamonds-in-the-rough and recruit them out from under the noses of less perceptive hiring managers.
If, on the other hand, you are determined to maximize the opportunity before you, then you have to be willing to take some huge risks, just as Alice has. Which means you need to speak truth to power, just like Alice has.
Go For Broke Strategy
Upper management sees a rock star and sees a hammer which will pound all their inconvenient nails. That is small-minded thinking. Managers say: "Paying down technical debt is the best use of her talents to move the business forward." Only the most unimaginative cretin who is utterly clueless about software engineering would say that. This is the speech of an opportunistic, mid-level manager that is trying to clean up the technical managerial incompetence of himself or the person he replaced. Call that BS out for what it is.
You need to imagine the most effective project that the company should be doing, if it had a rock star dev team to run it. I'm not talking about some incremental crap project that some other mid-level manager has been hyping. I mean, pretend you are the
CEO, and you can allocate enough budget to drive this hypothetical project to make a real difference in the company's bottom line. What would you come up with? How much would it cost? How much resources would it consume? What would it deliver? How much revenue could it make? You have to invent some numbers, but everyone who goes through this exercise makes up numbers. Yours just have to be barely believable.
Even if the project is too big for one team to deliver, you need to describe this project in as much detail as you can muster. Stop wearing your line manager hat, and put on your SVP hat. Or maybe your CTO hat. Make sure you can identify enough teams in the company that could reasonably deliver this ambitious project, if only it were adequately resourced. It has to be possible. Then start selling it to the highest level you can. Whatever level is above all of the folks who are currently grumbling, you need to target that level, whether it's a VP, the CTO, or the CEO.
Your sales pitch is this: "A year ago, if someone tried to sell this project, it would get laughed out of the room. I know a lot of folks think it is just pie-in-the-sky fantasizing. But that's because most of our programs are bogged down in technical debt, late on deadlines, and starving for code velocity. Instead of throwing more good money after bad, we need a fresh start. We need to deliver this project I've just described because we all know this is what leaps us forward. And it's possible. Today. I can put together a team that delivers it. I've outlined a roster right here. I think you've all seen Alice's handiwork. She crushed my 8 month project in 3 months. She's introduced half a dozen new technologies to our department. And I know that with her and a handful of other devs I've selected, we can deliver on this project. I just need the go-ahead."
Tactics
Now, as with any sales pitch, the most important thing to do is describe how the person you are selling to is going to win. A good portion of the beginning and end needs to be devoted to just that. You need to make it clear that if this VP/CTO/whoever greenlights your project, they can/will sell it as their own idea both upwards and downwards. All you need is the permission and resources to execute it.
Of course, they will already know that Alice is a problem child, and will be wary of expending too much political capital pulling her away from the managers who already have their meat-hooks in her. So be prepared to compromise in a variety of ways: "I know Alice is already assigned to the Maintenance Squad of Death. Let's make a deal where she works 50/50 on that and the new project for the next 2 months, then she goes full-time on Shiny New Thing." Be creative, be flexible, be fair. Alice has to pay her dues in the trenches, too.
But make it clear that if the Big Boss does not pursue this path, they are squandering the biggest resource they have, and other people will begin to notice. It would be like suddenly getting an aircraft carrier in your navy and using it chase boats that are illegally fishing. That reflects poorly on leadership at all levels, and you are going to begin pointing that out to folks until they recognize it. You are offering a path forward that makes use of the increased horsepower available to you. Everyone who joins this path will come out smelling like roses and looking like managerial geniuses. This is the idea you need to sell. You are enabling a new capability for the company that simply didn't exist before, because you know how to harness the power of a true rock star, which your company clearly does not know how to utilize.
Endgame
Once you have secured a shiny new project for Alice, yourself, and your hand-picked A-team, you need to sit down with Alice and explain the new terms. You appreciate the fact that she's shaking up the system, learning quickly, and teaching others. You recognize her outstanding work, and went to bat for her at the highest levels of management, expending considerable political capital (possibly all of it) to do so. You got her a sweet gig delivering the highest-profile project in your department/organization. Now, she needs to deliver. But first, she needs to pay her dues. She needs to suck it up, fix some crappy legacy code, and teach both the new junior devs and the old seniors some new tricks about testing, maintainability, refactoring, documentation, and code review. That's part of the deal you made with upper management, and if she's as smart as you say, she will recognize that this is the price to be paid for entry to the big leagues.
Also, you are going to work with her on how to press for change without alienating all of her potential allies. You will go through scenarios that have occurred and write practice emails where she expresses her ideas, and you refine them to be more diplomatic, so she learns how to communicate effectively but less abrasively. You will use all of your manager skills to teach her how to manage her colleagues, because this is the area where you are an expert and she is a student. This work is less exciting and fun for her, but you need to make it clear that it is every bit as important as the coding. This can include role-play where you are the obstinate senior dev and she is trying to convince you to adopt a new technology. Teach her to ask questions which lead to the desired result rather than making claims. Show her that she needs to produce an outcome that lets everyone win without losing face. Give her concrete examples of wording, body language, etc. But also teach her that building personal relationships with other engineers can also smooth over disagreements. Ask her and some of the senior devs to go have afternoon coffee and try to find common ground between them. Give her the assignment of finding some work that they've done that she respects or appreciates, so she has something positive to say to them. There's lots of ways to smooth things over with people you disagree with. Your job as a manager is to brainstorm those ideas and present/teach them.
Of course, after your team delivers on the project, you will ask for a promotion/raise for both yourself and Alice, for a job well done.