I think you are making this too complicated.  Just invoke the method directly
 

Process A:
b = .B~new
    b~popupAsChild(...) 
....
b~METHOD1
...

Process B:
::CLASS B PUBLIC
...
::METHOD METHOD1
do something


Doing this I get:

Error 97.1:  Object "a Message" does not understand message "METHOD1"

But I also realise that my sample above is not reflecting the code sequence correctly, it should be:

Process A:
b = .B~show
...
b~method1

Process B:
::CLASS B PUBLIC SUBCLASS USERDIALOG
::METHOD show CLASS
tv = self~new
return tv~popupAsChild(....)
...
::METHOD method1
do something

Object 'b' is a .Message object and I can use for example "if b~completed then..." without any problems, but b~method1 doesn't work. I can't see any major logic difference between the two samples, but the above is more accurate than the first.

Staffan