I guess, long and short of it is: anyone managed to update a property from velocity directly (without redirecting the url each time)?  Or have any idea's how it could be done?

Only documents with programming rights can update objects and save the document.

So, what you need is a page that performs all the changes, saved by a user with programming rights. This page should receive as parameters the target document name, objects and properties, perform all the changes, and save back the document.

There is the set(String fieldname, Object value) method in the Object API, which can be called by any user, but in order to keep the changes, you need to call $doc.save() at the end.

--
http://purl.org/net/sergiu