Nicht zu vergessen, die Typen neu definieren und die ganzen Verpointerungen zu setzen.

Die Frage ist ja auch, was du dann zurückbekommst.
In diesem Fall musst du die Strukturen in der Linkage Section definieren und deren Adressen dann mit den Pointern der Rückgabe verbinden.

Ganz schön mühsam, nur um das Ganze in Cobol zu machen, was dann anschließend keiner mehr versteht.

Bei der Rückgabe von Strukturen und Pointern ist zu beachten, dass du gewaltige Memory Leaks bekommen kannst.
In C werden Bereiche mit malloc() ganz einfach angelegt und mit free() wieder freigegeben.
In C++ sieht das leider anders aus, da es hier Konstruktoren und Destruktoren gibt, die du aus Cobol nicht aufräumen kannst.

Wenn deine Routine also häufig im selben Job läuft, kann irgendwann dein Speicher platzen.

Lass dir doch lieber ein paar C-Routinen entwickeln, die dir dieses Mapping abnehmen.