Would the ability to more directly manage inventory via scripting be a possibility? If you're storing a unit's inventory in memory in an array (or anything else that implements System.Collections.Generic.IList(T)), perhaps actions to get/set values using the inventory to manage, the item's index within that inventory, and the item property you want to access? (I'm making the very broad assumption that inventory in save files will continue to store the individual stats of every item in that inventory, such as below from the old engine.)
<Inv>Practice Sword,Weapon Hand,c:Swordsman::Fencer::Hero::Champion,,,Sword,16,25,0,0,0,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,20,0,10,,Sword Wooden,Flimsy practice sword. Strength -1.||Bandages,triggered,,,,,2,16,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,,Bandages,Restores 12 health.</Inv>