Well, yes. it's doable but I wouldn't recommend it. But Composer is doing this. You can figure out how to do this by watching your network traffic when hitting the SAVE button on a Thing/ThingTemplate/ThingShape...whatever.
So you could use PutJSON to localhost/Thingworx/ENTITYTYPE/ENTITYNAME....
A better option and the one I would take would be to RemovePropertyDefinition and then AddPropertyDefinition. I think, due to the way that ThWx holds data in memory, that any values on live things will be there as long as you do it quickly. If you take 1 day or a server reboot between the Remove and the Add, then the data will be lost. This appears to be true in my past trials, but I don't know if it will be true forever. Also. it appears that AddPropewrtyDefinition does not take a Units parameter. So that's a dead end. Bummer.
It would be nice if ThWx could provide us a service EdiPropertyDefinition() but so far we don't have it.