I don't see the gain from having a "pure" descent finish (Chat) over descent finishes to Grand-Bornand and especially La Roche-sur-Foron. A second rest day transfer of that length is a total non-issue imo. I'm not too fond of the GC MTF, but thought you'd prefer one proper MTF. I'd go with Megève instead.Can't get to the Vosges earlier than stage 15 without ditching the TT on stage 10, so I would have to cut the Porrentruy stage for that to happen. Which is comfortably the best mid-mountain option at any point in the race, and therefore IMO worth sacrificing Chévrères for.
Porrentruy (much like PdBF) is also inconveniently located for a transfer to Lyon, not being near an airport, although the TGV might be an option. Even if you make it happen, I'm not the biggest fan of that Grand Colombier stage, I also feel like it backloads the race too much as it means the three hardest mountain stages are all in the final week. Plus, I wanted to bait ASO a little with the short mountain stages.
Stage 11 of 2012 and stage 18 of 2020 to close out the race is an option I remember considering, but I decided against it because it would mean there isn't be a single pure descent finish in the race. No Col du Mollard detour on the La Toussuire stage in 2012 would have made me change my mind, though, perhaps even if the 2017 Chambéry stage took the shortest route between Grand Colombier and Mont du Chat by descending into Culoz from the former. As it is, I think there's little to separate the two options, and so there's definitely an element of personal preference in my decision.
Yeah, I don't have any strong opinion on PdBF/Porrentruy vs. Géradmer/PdBF, just another option to consider. Pushing the last rest day a day further is also off the table.
And looking at the weekdays again, I would probably take your stage to Valence out and insert a Zwischenzug after stage 6 (probably one of the stages to Foix/Prat d'Albis). An alternative approach would be to go for the Vallon-Pont d'Arc ITT after Mende (which will be raced the same no matter what follows), which would also leave space for Géradmer/PdBF/Porrentruy. Free to pick between Megève and Besançon TT as well.
1: Nice ITT
7: Prat d'Albis
10: Vallon-Pont d'Arc ITT
13: Nancy (2019 to compensate the sprinters now that it's not in the weekend)
17: Besançon ITT
18: Grand-Bornand (EDIT2: without the GC MTF, you can just as well have the Chat stage here as a substitute; it'd result in a minimally longer transfer, but Prat d'Albis can be taken out again and then your Oyonnaz stage can come back)
20: La Roche-sur-Foron
EDIT: Just to clarify, the only reason why I brought this up after I stumbled over your post, was because I think it's a really good idea worth exploring, and it was a fun constraint to limit to the actual routes of a ten-year period.