After a lot of debugging I think I found the issue.
When I set
options.headingsOffset = 1;
in the tocbot-init.js file just before tocbot.init() everything works great. Looks like it gets passed as text instead of a number and Tocbot doesn't throw an error and just doesn't work well then.
I'll dig deeper and look for a patch but if anyone else has this issue in the meantime this information could be helpful.