Shops can definitely be lost due to natural or manual despawn events. After that they can no longer be restored. A possible solution would be to generate the shops using the yamls every time the plugin is reloaded or the server starts instead of hooking the shops into the fixed Villager entities. So it doesn't matter whether they are deleted during the session.
When Villagermarket tries to restore the shops, the old entity UUID is not restored but a new Villager with a new UUID is created and Villagermarket cannot hook into it properly.
VM 1.11.7 and 1.12.1
Shops can definitely be lost due to natural or manual despawn events. After that they can no longer be restored. A possible solution would be to generate the shops using the yamls every time the plugin is reloaded or the server starts instead of hooking the shops into the fixed Villager entities. So it doesn't matter whether they are deleted during the session.