VB 6 se bloquea en la salida

Tengo una aplicación vb6 heredada que se bloquea al salir, tanto como ejecutable como en el IDE. ¿Cómo puedo evitar el choque?

Actualmente estoy descargando los formularios (excepto el frmmain) enform_unload, liberando todos los RecordSets de ADODB, configurando todas las colecciones con límite = nada.He intentadoSetErrorMode SEM_NOGPFAULTERRORBOX en elform_terminate evento y eso no ha detenido el error. También he comprobado las instancias de subclases en mi código y no he encontrado ninguna. He revisado los componentes externos a Microsoft que se usan: son el componente 8 de ortografía 8 y el control de tamaño ComponentOne. Una extensa búsqueda en la web y en el foro no ha revelado ningún problema conocido similar al mío para estos controles.

El problema no parece ocurrir si apago el programa antes de hacer algo. Sin embargo, la carga de los controles enlazados parece estar cerca de donde se origina el problema, a pesar de pisar repetidamente con el depurador, parece que el inicio del problema "se mueve". El problema ocurre con la salida programática, la "X" y el control "final" IDE. El mensaje de error esThe instruction at "0x77d042b8" referenced memory at "0x055c9028". The memory could not be "Read". El título en el cuadro de error es una sugerencia de herramienta (que difiere en diferentes momentos) desde el interior de mi aplicación. He puesto interrupciones al recorrer el código: la aplicación se bloquea en la sublínea de salida en el evento Form_Unload

ADICIONA
Me di cuenta de que debería haber incluido alguna otra información con mi publicación original. Estaba muy cansada y frustrada cuando lo logré y lamento que fuera tan difícil de leer.
Ahor
1) Tengo instalado el último service pack (6) y las últimas compilaciones de los componentes
2) haciendo una depuración en mi ide VS2010 (que está en el mismo servidor) Obtuve un volcado de pila muy largo que comienza con OLEAUT32.dll, actualicé esa DLL pero no encontré ningún cambio
3) Realmente estoy ejecutando (y trabajando en) el programa a través de una conexión de escritorio remoto. El programa se bloquea en mi escritorio y en las conexiones del servidor de terminal de los usuarios.
4) El sistema operativo con el que estoy ejecutando es Windows Server 2003
5) el código que estoy ejecutando es
'código'

    Private Sub Form_Unload(Cancel As Integer)
        Set rsChild = Nothing
        Set rsCaseFile = Nothing
        ' many similar record sets closing
        ys.CloseConnection
        Set ys = Nothing
        UnloadAllForms (Me.Name)
        ' closeing bound collections 
        Set bndChild = Nothing
         Set bndAuth = Nothing
         ' more bound collections closed
         ' i had added the next two lines but it made no difference
         frmmain.close
         Set frmMain = nothing 
         getout
    end sub
    Public Sub UnloadAllForms(Optional FormToIgnore As String = "")
        Dim f As Form
        For Each f In Forms
            If Not f Is Nothing Then
                If f.Name <> FormToIgnore Then
                    Unload f
                    Set f = Nothing
                End If
            End If
        Next f   
    End Sub

'\code'  

6) He agregado una rutina de "salida" en el módulo de inicio con la esperanza de que permita que el objeto de formulario se cierre limpiamente. Esto no solucionó el problema
Muchas gracias a todos por su ayud

Respuestas a la pregunta(3)

Su respuesta a la pregunta