I like this system, but what about this variation:
You are only allowed to "buy" cards left in location decks after a scenario.
For instance, I finish up a scenario, but I found and defeated the villain relatively quickly. Now I rebuild my character deck and use the remaining cards to trade for the remaining boons in the locations. this way there is still the element of randomness, but also a way to make your hand more effective.