I've seen something like this problem as well, though it is with a C# forms application. The OP initially refers to "un-disposed instances", but subsequently indicates that the instance has been disposed but is still in memory.
Well reassuringly it seems there is a bug in the .NET framework. It is described in this article (http://connect.microsoft.com/VisualStud ... kID=428857
) without a suggested work around. Fortunately a more complete article with a workaround can be found at http://www.scitech.se/blog/index.php/20 ... ork-20-sp1
I have implemented the workaround described and can confirm that it solves the problem. You should note though that the reference will change anyway if/when another MDI child becomes the last active one. At that time the earlier one will be collected. So in a live system this probably isn't a big deal, but when using a memory profiler it does mis-lead.
I've seen a similar problem with a DevExpress tree component, but I have yet to find / come up with a workaround. I guess a simple example sent to DevExpress is the way forward.