Und genau das ist ja der Fehler!
Beim "SBMJOB ... CMD(CALL MYPGM PARM(&F1))" wird der Inhalt von &1 an den CMD-Prozessor übergeben und dieser entfernt Leerzeichen am Ende wenn eben keine Hochkomas in der Variablen sind!
Nur wenn der Parameter kürzer als 32 ist wird bis 32 mit Leerzeichen aufgefüllt.
Wem das mit den Hochkommas zu viel ist, der nimmt einfach die Variable 1 Byte länger, setzt an die letzte Stelle ein "X". Der CMD-Prozessor packt das selber in Hochkomma und verdoppelt vorkommende Hochkomma.
Da das empfangende Programm 1 Zeichen weniger erwartet ist das "X" unsichtbar.