Given that a good game design feature is to give players an interesting choice, why don't we just make the choice of whether to move or not more interesting?
Namely, how about, for every 30 days your alliance is on a color, you get a 1% color bonus, capped at 5%, and affected by the 0.5% penalty per alliance (ie, instead of using a min of 0%, and then applying the up to 5%, apply the up to 5% first, and then make it a min of 0.)
(All those counters should start at 0, and not reward/penalize alliances for did or didn't move recently.)
That way, an alliance has to choose whether jumping to another color is worth the cost of giving up whatever bonus they've built up.
Right now, the decision is mostly a no brainer, for alliances that are not thematically tied to their color. You benefit by moving, so you move. Not very interesting.
With a change like this, some alliances will likely decide to be flighty and to follow treasures around (especially if they land on an alliance heavy color, and then the treasures move away the next month). Others will choose to stick with their bonus for sticking to their color.
Much less clear which strategy is necessarily the best, which makes the choice more interesting than always following the treasures.