If the scope is small, i.e only affects a few Accounts, one thing you could look at is leveraging the fact that catalog plugin is called on
behalf of a given Account (typically catalog is global to a Tenant), but the code allows per-account catalog: you could then serve a catalog without price change for the affected Account -- obviously if you already have an Account that has multiple subscriptions, one with old price and one with new price, this will not work.
Back to real fix, is it really difficult to return multiple versions instead of one ? I suppose the tricky part is to make sure you return the correct effective date for each catalog version, but other than that it should not be a big code change.