I like the spirit of the idea, but as written it's just way too powerful & only gets worse the further it goes. I'm not really sure how it could be fixed to not be broken or stomping on the toes of sorcerer/warlock & even linking it to hit dice doesn't seem to help much.
I think limiting it to a chosen spell starting at 5th level (must be 1st) that gets free upcasting to 2nd.
Then at 11th level, you get to pick another (1st or 2nd) that gets free upcasting to 3rd.
Finally, at 17th, you pick a third spell (1st to 3rd level) that gets free upcasting to 4th.
When you level, you can swap out your upcasted chosen spell but it must be the same level. If you want to follow the UA, make it on a short rest.
This way, a Wizard (or even give the ability to other casters) can have three free upcasted spells, to a maximum of 4th level ability.
EDIT: an option to link it to HD, is you can spend your hit dice when casting a spell to upcast it by one level per HD spent, to a maximum spell level you can cast. You regain HD spent in this fashion after completing a long rest.
Ex. an 11th level caster could spend five HD to upcast a 1st level spell to 6th.
Of course, if you spend HD for other features, you have fewer for free upcasting.