Error code 0x8001010a is RPC_E_SERVERCALL_RETRYLATER, "The object invoked chose not to process the call now. Try again later." Not uncommon for Office apps. You are supposed to sleep for a while and try again.
This is not exactly very practical, using the strongest possible understatement. Ultimately, it is caused by you using threads in your code. Office objects are single-threaded. You certainly can make a method call on a worker thread, but COM automatically marshal the call to the STA thread that created the object. Essentially removing all advantages of multi-threading. If you create your own STA thread to avoid that then the marshaling is done inside the Office app.
And that's where the buck stops, if you make a call and the app just isn't ready to execute the method because it is busy doing something else (typically with whatever you asked it to do previously) then it will reject the call with this error code. Exactly when you'll get the error is highly unpredictable, a version change certainly qualifies for different behavior. You'd have to tone down the threading in your code to avoid slamming it so hard.
Or to implement the IMessageFilter interface and tell COM that it is okay that your program hangs on the call and it should just continue waiting until the Office app is ready to process the call. This Q+A talks about it.