Overall you have a good system going on. Further, I have been contemplating using something similar for a combination of this functionality and for use as an audit log should someone want to know who made a given change. Like others there are a few things I would likely do differently.
Like others I question the use of temporary negative numbers for your ids. You could use guids as suggested. You could also add a source id which identifies the office into the mix. For that matter, you could use a combination of datetime2 and an identifier of who made the log entry for your primary key.
I also wonder why in the world you felt the need to prefix all of your column names. I know this is common, but what other thing could it possibly refer to? If you have a table called "UpdateLog" then you expect all columns relate to the log. As you follow your path you end up with ever more bazaar prefixes to your column names.
Finally, if you are using a single log to update multiple tables, I wonder about the feasibility of using either xml, or json in holding heart of the update information. But understand this is coming from a developer who sees it as a way to make a simple matter to write code for the conversion. I don't know how hard/easy it would be to deal with all that in sql.