Its probable that you are seeing the effect of the non-deterministic memory management used by the CLR for managed code.
I started with the C# ActiveX control sample from MSDN Code Gallery (CSActiveX). After Visual Studio updated the project I modified the CSActiveX class so that it used about 100 MB of memory on the managed heap. To accomplish this I had the class allocate and initialize an array of integers.
Then I used the MFC New Application template to create an MDI application with CFormView as the base class for the application's view class. The CSActiveX control was created in the Form using CWnd::CreateControl.
What I noticed was that opening a MDI child window containing the ActiveX control caused the application's memory consumption to increase by approximately 100 MB as viewed in Task Manager. Opening numerous MDI child windows resulted in memory usage of about 1 GB. Closing all MDI child windows did not reduce the memory usage per Task Manager. However, after all MDI child windows had been closed, opening new windows seemed to trigger garbage collection and the applications memory usage dropped sharply.
For example, MFC application with multiple windows and Task Manager memory usage -
And now after closing all open MDI child windows and then reopening one child -