Villagers spawned using a Command with pre-set Trades do not change thier prices when they are cured or when there is a gossip around the village.
I spawned one without pre-set Trades and it Worked like it should. I used these commands:
_+Pre-set Trades:+_
/summon zombie_villager ~ ~ ~ {ConversionTime:1,ConversionPlayer:[I;1,1,1,11],VillagerData:{level:2,profession:"minecraft:librarian",type:"minecraft:plains"},Offers:{Recipes:[{buy:{id:'minecraft:emerald',Count:10b},buyB:{id:'minecraft:book',Count:1b},sell:{id:'minecraft:enchanted_book',Count:1b,tag:{StoredEnchantments:[{id:'minecraft:mending',lvl:1s}]}}}]}}+_Without Pre-set Trades:_+
/summon zombie_villager ~ ~ ~ {ConversionTime:1,ConversionPlayer:[I;1,1,1,11],VillagerData:{level:2,profession:"minecraft:librarian",type:"minecraft:plains"}}Linked issues
duplicates 1
Comments 2
See MC-175018. Each "naturally generated" trade has a priceMultiplier tag which is used when calculating discounted prices. You haven't specified the priceMultiplier for your custom trade, so it defaults to 0.
I'm pretty sure this is an intended mechanic but I can reproduce this in 1.16.4 rc1