Considering you say you know nothing about scripting, you've got it pretty much exactly right.
The way the developers did it was to set one object in the house for that upgrade group as the parent, and assigned all the other grouped objects as its children. So for example, for a kitchen upgrade, one of the tables could have been placed and made persistent, being called ParentKitchenAreaBruma and marked as disabled. Then all other objects that would be part of the kitchen upgrade would be set as having ParentKitchenAreaBruma as their parent. (Read up on parent objects if you're confused, but basically objects that have a parent object assigned can't be enabled/disabled individually. If the parent object is enabled, all the children are enabled too, and vice versa).
They then have a script attached to the house quest, which does a GameMode check for a few things. The first thing it does is checks the quest stage to see if we've bought the house. If we have, it enables the merchant chest (in this example HouseBrumaAddonsRef) containing the upgrade scrolls (allowing us to buy upgrades).
if ( GetStage HouseBruma == 10 ) && ( MerchSetup == 0 )
HouseBrumaAddonsRef.Enable
HouseBrumaAddonsRef.SetOwnership Suurootan
set MerchSetup to 1
endif
Once this is done the script then checks to see if the individual upgrade scrolls are in the players inventory. If they are, it enables the relevant parent object.
if ( Player.GetItemCount HouseBrumaKitchenAreaReceipt == 1 ) && ( Doonce == 0 )
ParentKitchenAreaBruma.Enable
set TotalCount to ( TotalCount + 1 )
set Doonce to 1
endif
The total thing is just to check how many upgrades the player has bought, in order for the "I've bought everything" quest stage to happen.
I hope I've explained things enough. If you have any questions feel free to ask.