If you look at the function TIPProcessKey either side of calling ProcessHook it calls _td->app->SaveContext(savedContext); and then restore context. This doesn't just save the context but also the keyboard options. The core implementation only saves the context. So for the core implementation, it needs to be updated to save the keyboard options.
This should be quick to implement and was moved off the main initial PR for keyman core integration as that PR was becoming a long-running PR.