Colin,
When you say that the debugger shows no form object in memory do you mean that the variable Marketing is not an object reference or that _screen.formcount is 0? As I said in the other reply you may well be dealing with multiple object references to the form existing and your code is only releasing one of the references (the variable Marketing). That or the form or one of its contained objects is unable to release due to an external object reference existing.
BTW, this is one of the reasons why the use of a framework is recommended. In a framewwork there would be a form manager objecft and your menu would be something like this;
oFormMgr.NewForm("Search")
and the fomr manager woul;d then create an instance of the form Search for you. When you were done your menu would;
oFormMgr.KillForm("Search")
and the form manager would get rid of the form Search for you. The only object references to the form would be inside of the form manager.