So, after a bit of digging, I found out a few things had logic flaws. In particular, what you’re seeing for the Globally Disabled was due to corrective code from 1.3.1 (I think?). This corrective code forgot to take into account legacy clients initially. This has been addressed now and I’ve tested it as described earlier.
More detail on the global disabled for legacy client can be seen here:
There were a couple other bugs fixed in the above link but it also addresses the issue described here.
For the second part, I added an argument to our getClass method to simply return properties of another class. However, the arguments I was passing was intended to go with the calling/instantiating of the working class item. Only user tracking appears to have required this adjustment, but to help prevent further issues I am now implicitly calling the object with the new keyword. The getClass method is intended to be used so we can immediately chain other caller functions rather than storing the object into a variable.
You can see details here: