Ha, that's exactly what I'm doing with my current Race Design Tour, sticking mountains in stages 3 and 4 before the rouleurs take over.
I think there are a few things really. Televising 150km of a flat stage will always be terrible because you need something to attract viewers to keep the broadcast on. Great scenery can only take you so far, but it does definitely help. 150km of vineyards and châteaus will always be better than 150km of dull industrial towns, for example.
One thing is that sprint stages should either be much shorter (meaning attackers have more energy left so controlling them can be more difficult) or much longer (meaning fatigue becomes a factor and the effect of any small obstacle is amplified. After all, the Poggio di Sanremo wouldn't drop anybody except Andrea Guardini after 140km, but after 290km it can break things apart such that the sprinters have to earn their right to sprint it out.
Another thing is that putting a stage which can open time gaps in the first 2-3 days has the effect of setting the status quo in the péloton. You know who's at the top of the pecking order and who isn't, and if some riders have already lost time, they have less to protect. Something like 2008, with the Côte de Cadoudal in stage 1 and the medium-length ITT on stage 4, worked well (also they had a medium mountain stage on stage 6, although it meant we were still on transitional stages on the second weekend). While everybody is still on roughly the same time at the head of the field, everybody is nervous, and there's only so much room at the head of the field. Prudhomme seems to have fallen out of love with the prologue, but that's a useful tool to create time gaps if you're starting somewhere without the option of hills.
The cobbles of 2010 and 2014 have had their positive effects, but obviously the cities the route is going through aren't always suited to that.
Oh, and the Tour seemingly never goes for circuits, whereas both the Giro and Vuelta are happy enough to do these from time to time. A town with a rolling section around it or with a hill, why not do it two or three times in order to create more opportunity for it to be decisive but also to incentivize earlier moves from those who won't win a one-hill shootout but plug the front, who might however win a shootout from a group if it's miscalculated?
Don't give so many UCI points for placements, either in stages or the overall, so that 5th place in a sprint or 10th place in the GC is worth protecting. What Rolland had to say about IAM riding to protect Mathias Fränk lying about 14th overall with over a week to go last year rings true. He got a top 10 last year, but Rolland moaning about the team's negative riding is the only reason I remember him being there at all.
Fewer WorldTour teams made of faceless millionaire corporations or pseudo-national teams funded by conglomerates and oligarchs, more wildcard teams sponsored by smaller businesses who still benefit from the exposure.
Sprint stages designed a bit like Paris-Tours, where you know a sprint is likely but there's still enough that even those short côtes make organising the sprint train difficult.
Go back to the old system with more intermediate sprints. Appreciate why this system was brought in, but now there's only one, the maillot vert contenders are happy to contest the remaining points after the break's gone. Have points down a fair way though so you'd get a number of sprints. Either that or put the money up for them to make being in the break for them more attractive for smaller teams, and maybe even persuade a few towns to hold those old-fashioned unofficial primes, at least once the GC mix has been set out a bit.
Intergiro.
Introduce an Activity Classification like the Peace Race used to have - the finish line sprint offers the same points as an intermediate sprint, and the classification is scored with all intermediate and mountain sprint totals - plus a bonus point for being in a group of 10 or fewer that finishes 30" ahead of the next group on the road, with each additional 30" garnering an additional bonus point. It worked wonders for the Peace Race in editions like 1977 and 1979 when the GC was settled early due to one rider being significantly stronger than the rest (in the chrono in 1977 and in the mountains in 1979).
Introduce an actual way of classifying the combativité, only do it in the style of the Trofeo della Fuga - BUT modify it somewhat. Gain 1 point for every kilometre checkpoint passed through as tête de la course in a group of 10, gain 2 points for each passed through in a group of 9, all the way to 10 points for every km checkpoint passed through alone in front. This ought to then balance the classification between those who attack solo in short but more important moves, and those who log their km in large breaks in the mountain stages but spend the most km away overall. De Gendt vs. Bardet and Sagan last year, if you will. It will also mean a fight to get into the breaks because a stage where one guy spends the whole day on his own out front could totally demolish the classification.
The team adjudged to have been least interesting on the day is forced to have their DSes locked in a darkened room while Vino, Jacky Durand and the ghost of Frank Vandenbroucke direct tactics for the team the following day.