Saludos al foro
Viendo tu código rápidamente (dificil de leer sin las etiquetas [ DELPHI ][ /DELPHI ]), veo que utilizas PostMessage para enviar el mensaje de crear, ignoro que motivo tengas para usar este método, yo mandaría llamar directamente a UMCreateFrame sin más.
Tu método tendría un defecto fundamental según mis escasos conocimientos teórico-técnicos

, PostMessage inserta el mensaje al final de la cola, pudiendo existir cientos pendientes antes de ejecutar la creación, es decir al regresar de la llamada
Código Delphi
[-]
PostMessage( handle, UM_CREATEFRAME, WPARAM(forTabsheet), 0 );
NO se ha creado el frame. Si usas SendMessage, manda el mensaje inmediatamente (que alguien me corrija si he cometido una barbaridad con semejante afirmación) y creo que sí se crea elcomponente al regresar de la llamada. De todas maneras, te recomiendo que cambies tu metodología y no dependas del sistema de mensajes para la creación de componentes, a menos que tengas una razón muy muy poderosa.