Yeah, I think that helps.
I still can't reproduce your problem, even using a multithreaded program running on a dual core, where each thread is installing callbacks on its own panels. However, based on your description of the problems you're having, and on their erratic nature, I think we're looking at a race condition caused by multiple threads accessing the internal data structures of the toolbox.
The Programmer's Toolbox is not a library in the traditional sense of the word, and as such, much of its API is not multi-thread safe. In looking again at the code for the the windows message callbacks, it looks like it is definitely not thread-safe. Essentially, if multiple threads attempt to access g_msgCBHandlers simultaneously, these types of errors can occur.
It's understandable that you see this problem with a dual core machine, since a dual core machine allows threads to really run in parallel. In theory it can happen in a single core computer also, but depending on when the thread switch happens, it might be very hard to reproduce. The only thing about this doesn't make sense is that this problem should also have happened with version 8.1, and earlier. So that's still a bit of a mistery.
In any case, I'm attaching an unofficial patch of the 8.5 version of toolbox.c. Basically, it replaces g_msgCBHandlers with a thread-safe variable, thus ensuring that multiple threads don't access it simultaneously. Since we never reproduced the original problem here, we're going to need you to try it yourself, and see if it fixes the problem. If it does, it's safe to continue using it. You just have to create a toolbox.obj file (using Options>>Create Object File) and then replace the one that is installed by CVI. Before you do so, however, it's a good idea to make a copy of the original toolbox.c and toolbox.obj.
Let us know how it turns out.
Luis