Tried to step into the code and here is where item 2 and 3 above differ:
Working terms go past that line and onto Services.Notifier. The terms which cause issues stop there and don't throw any errors, it's like an infinite loop.
I went deeper and found the same on the line below, working terms went past that and terms that didn't work just stopped there.
Right now I'm trying to go through the Invoke<TEvents> within InvokeExtensions.cs, because it seems to be having issues there.