I don’t know if this is possible in Inform 7?
A usual trick in Quest is to swap one object for another e.g. broken radio for fixed radio, but for the player they are both called ‘radio’ - there is the object name that the code uses, and the name that the player sees which can be different. This is particularly useful for NPCs who are in different states e.g. asleep, awake, unhappy, happy etc.
I can get around this by putting conditionals on just one object, but it can get messy if there is a lot going on.