The ability Engineering upgrade can entirely swap out an ability or change ability data. If Engineering Upgrade is on the Hero before it learns an ability, the ability is swapped from the unlearned ability to the replacement ability, working exactly how the replacement ability is supposed to. If the Engineering Upgrade is added to the Hero after it learns an ability, it overwrites the data of the learned ability with the data from the replacement ability, including the object id (meaning they are two separate abilities). In the latter case the data is overwritten even if the abilities are different, causing weird results since the data from f.e. Bash will not work well just copy pasted unto the data of lets say Flame Strike and I have yet to find an actual use of replacing the ability data of one ability to the data of a totally different ability.
If the original and replacement abilities are based on the same ability there is no difference in giving Engineering Upgrade before or after the Hero has learned the ability since by giving it before its replaced with the same base ability and by giving it after the data of the same base replacement ability is written to the data of the old ability which works fine since they are the same base ability and are supposed to have the same or similar data.
So in your case you could create another Blizzard ability and an Engineering Upgrade ability that swaps the original Blizzard ability to the new Blizzard ability. The drawbacks of doing this is that you would now have two different Blizzard abilities on the map, the only difference one having a different Level Skip Requirement.
Disclaimer: The explanations and terms are from my observations and understanding and I dont know how Engineering Upgrade exactly functions internally, like if the data is actually overwritten or not but it works as to paint a picture of how it appears.