i'm using recycled vanilla dialogue and it works as of patch 1.6, but some users are reporting that it freezes the quest with no way to advance dialogue (more of the post-1.6 strange mod conflict shenanigans)
in any case, if you want to try it out, it's actually very simple.
on your quest script you need a transaction function that handles all your gold removal, as well as set variable values if needed (usually you may want to use a quest variable initially set to value of 0 when the house is for sale, and set to value of 1 after it has been bought) and have the variables set to conditional so that they can be used in the dialgue condition functions as a way to check if the player owns the house or not.
for add-ons the best way to accomplish this is to enable parent your purchasable stuff to a xmarker that is set to initially disabled. then in each dialogue when the player purchases the add on the xmarker is enabled.
you can also use the getdisabled condition function to check if the xmarker is disabled or not. if its disabled the player has not purchased that part yet, etc. you will need to set up your conditions carefully to control which dialogue options will be visible to the player and when