Da der IBMDA400 für SQL nicht so geeignet ist, verwende den Provider für ODBC und nimm den ODBC-Treiber des CA. Dort kannst du ein SQLPKG verwenden.
Die AS/400 analysiert dann die SQL's und ersetzt Inhalte selbständig durch Parameter-Marker, so dass tatsächlich identische SQL's auch nur 1 Mal prepared werden.
Da der IBMDA400 erst ab V5R3 SQLPKG's unterstützt und es dort auch explizit definiert werden muss, wird eben jedes Statement prepared.
Wenn nun die Commandobjekte nicht korrekt freigegeben werden, kommt es eben zum Überlauf der Resourcen.

Solange man mit den SQL's im SQL92-Standard bleibt, dürften alle Befehle auch mit Parameter-Markern identisch sein.

CHGPJE ... MAXUSE(1) könnte ggf. was bringen, da der PJE dann tatsächlich beim Close der Verbindung beendet und nicht erneut wiederverwendet wird.
Allerdings gibt normalerweise der PJE-Job beim Close alle Resourcen frei. Da dies bei dir wohl nicht funktioniert (durch fehlende Objekt-Freigaben) könnte MAXUSE tatsächlich funktionieren.