Using the adjust command on definitions shouldn't modify the real object it represents, and yet - adjust def:DEF mechanism:value seems to do just that.
For reference (made by Morphan):
on player prepares anvil craft item:
- define contents <context.inventory.list_contents>
- define item <[contents].get[1]>
- define repair_material <[contents].get[2].material.name||air>
- if <proc[is_normal_chestplate].context[<[item]>]> && <[repair_material]> == "chest":
- adjust def:item custom_model_data:1