Da die Filterinformationen variabel aufgebaut sind, kannst du hier nicht mit festen Positionen arbeiten.
Du kannst aber mit COBOL sehr einfach die Struktur dynamisch aufbauen:

* Format OSPF0100
01 Anzahl-X.
05 Anzahl pic s9(9) comp-4.

01 ZielFilter pic x(10000).
01 ZielPos pic s9(9) comp-4.

move 1 to ZielPos

* AnzahlUser
move n to Anzahl
move Anzahl-X to ZielFilter(ZielPos:size of Anzahl-X)

compute ZielPos = ZielPos + size of Anzahl-X

if Anzahl > zero
Move User-Array(1:Anzahl*12) to ZielFilter(ZielPos:Anzahl*12)
endif

compute Zielpos = Zielpos + Anzahl*12

* Anzahl Outq's
move n to Anzahl

move Anzahl-X to ZielFilter(ZielPos:size of Anzahl-X)

compute ZielPos = ZielPos + size of Anzahl-X

if Anzahl > zero
Move OUTQ-Array(1:Anzahl*20) to ZielFilter(ZielPos:Anzahl*20)
endif

compute Zielpos = Zielpos + Anzahl*20

usw.usw.

Wichtig ist, dass der Filterpuffer für alle Werte einen gültigen Inhalt hat, im Zweifel eben auch Zero.

Das Format OSPF0200 ist da etwas einfacher da du hier ein Gesamtformat mit einem Header übergibst.
Du musst nur die Anzahl und Offsets korrekt berechnen (Start ist immer 0).
Hier hilft dir ja "size of" für die Berechnung.