It's telling that the majority of the code examples in that PDF are in Visual Basic, and C++ is treated as a 2nd class citizen in it :-(
The 2nd method (dumpcpp with only an .h) is at least technology from this century so I understand why you prefer it.
Try to see if there's a pattern to the SEG faults, perhaps there's some extra initialization you need to do due to that missing staticMetaObject.
The IDispatch errors are a symptom of inconsistencies in the .tlb file but are glossed over by Visual Basic and C#, but I think they can be fixed with some type coercing, e.g. static_cast<IDispatch*>(ptr)
Good luck!
P.S. There might actually be a 4th alternative, especially if you're only using a subset of that Robot library:
write a "wrapper" COM .dll in C#, I think it's called a CCW (Com Callable Wraper) that exports the stuff you want in a more modern way, which then can be consumed by Qt C++.