Sorry for the slow response. I used my method across the board in 100s of locations so I wouldn't consider it a solution for individual cases only. To get the properties values loaded quickly I generate an incremental 3rd Party Netlist to add the properties to all the components all at once. I created a user defined property (Setup > Property Definitions...) so it doesn't get mixed up with other properties that may already have values assigned.
Here is what the 3rd Party Netlist would look like:
$PACKAGES
$A_PROPERTIES
TOP_SILK "DC_IN" ; TP31
BOT_SILK "DC_OUT" ; TP900
$END
Use File > Import > Logic then select the Other tab to load the netlist above. (make sure that Supersede all logical data" is unchecked)
You could also add this property to the schematic and pass it forward to the layout. (remember you would need to setup the tool to pass the user defined property forward)
As far as moving a part which had the property value text changed reverting back to the original text, I don't see the text change in my method. The only issue that I have is the text is not dynamic so if you change the property value it will not automatically update the text on the board so you have to go thru the property display process again or just rename the text.
Hope this helps,
Mike Catrambone
Plexus Engineering Solutions