This is a bit complex and I have spent weeks cobbling together something that almost works. I have created an Excel macro that is converting Word docs from one template and format structure (current) to a new template and format structure (new).
The current docs are on a network share and the new docs will be on a SharePoint Library.

The point of failure is that some of the SharePoint properties won't update from the doc to the library.

The macro opens the Word docs, one at a time, from a specified folder. For each doc I do the following:
1. Run 8 Word macros (These are in the Startup template for Word and available in all our docs) They clean up sloppy formatting.
2. Copy the content to the New template.
3. Run 5 more Word macros to format new document.
4. Rename and save the new document to SharePoint library (file version is 0.1)

Ok now it gets fun. Once the document is added to SharePoint the SharePoint document properties are added to the document.
There are four properties defined in the SharePoint library:
• Client = specified by user on form
• Business = specified by user on form
• Process = specified by user on form
• Workflow Status = “Published” (Constant for this macro)

The only one I can update to SharePoint is Workflow Status. This property is not tied to TermSet values.
So ignore that one and let's focus on the other three.
I can see, but not update, the SharePoint defined properties in the Properties Document Panel (in the Procedure Properties - Server section). (The other property can be updated from the Doc Panel).
I can see and update all properties from SharePoint using the Properties window and selecting the value from the attached TermSet values.
I found some code that enabled me to write a macro that updates the three properties in the Word Doc using the TermSet GUID but the values do not transfer to SharePoint. That code looks like this. (Hard coded sample code for one property)
Sub UpdateProp()
Dim aryTerm(2) As String
    Set objCTprop = ActiveDocument.ContentTypeProperties("Process")
    aryTerm(0) = "Job Aids"
    aryTerm(1) = "bd45b06b-bccb-49c2-b4c9-7e6067edb51a"
    objCTprop.Value = aryTerm
End Sub
Note: The ActiveDocument.ContentTypeProperties("Process").value property is a collection

**THE PROBLEM**
When I run the code above I can see the value for the property in the Document Panel but when I check the document in the value disappears.

If I use a for each loop in a macro I can read the value I set in SharePoint.
Sub ReadProp()
    Set lctprop = ActiveDocument.ContentTypeProperties("Process")
    For Each oprop In lctprop.Value
        MsgBox oprop
    Next
End Sub
When I run the code above the For loop runs 4 times. The first item is the English value of the property, the second is the GUID, the next two are blank and I don't know what should be there if anything.

What I need is a way to update the property value so that it appears in SharePoint and in the Document Panel. I am not against using PowerShell or some other method and calling that from the VBA macro. I am not as familiar with other tools so would need some guidance.

Now for the good news. The properties for all files in a source folder are the same, which means a workable solution may be a separate property update routine run post conversion.
Since this is a batch process running on several hundred files in each of 50 or so folders the more automation the better. A two step solution flow would be...
1. Create new Word docs and save to SharePoint.
2. Once all docs are done, run a routine to update the properties for each file in the SharePoint folder.

-Thanks for reading all that and any input would be appreciated