One thing about the upgrade store is when you talk to the storekeeper to ask about upgrades, it won’t let you leave the dialogue until you buy an upgrade. Also if you say no to buying an upgrade, all the upgrades you’ve already purchased suddenly become available again. As far as I can tell rebuying upgrades doesn’t actually do anything.
Digging through the JSON files, it looks like you use plugin commands to remove the choices from the options which don’t get activated again when you loop back to the start of the convo because the label it jumps to is placed after the plugin commands. Now, to fix the reappearing choices would simply require moving the label in front of the plugin commands, but I’d actually recommend just leaving the “no” options blank so the player can exit the dialogue without being forced to buy something.
On another note: I only did a basic Ctrl-F through the JSON files while looking through the code, but as far as I can tell, buying the improved beds doesn’t appear to actually do anything.