The size limitation is a known issue with the CMPPFM command.
I have split the large files into smaller files when I needed to do that in the past.
If you not worried about the sequence of the data, just what records are in one file but not the other, you can do that with SQL.
I keep all my source in QSQLSLC. Here is an example.
LMK if you need more information.
INSERT INTO WRKENCRPT/ADDPF
(SYS, PRN, AGT, ACCTNO, CLIENT,
STRTDAT, ENDDAT, CHGDAT, USRPRF)
SELECT SYS, PRN, AGT, ACCTNO, CLIENT, STRTDAT,
CURDATE(), CHGDAT, USRPRF FROM WRKENCRPT/ACCTMSTR A
WHERE CLIENT <> '1379' AND
NOT EXISTS (SELECT * FROM
ICULIB/ACCTMSTR B WHERE A.ACCTNO = B.ACCTNO AND
A.SYS = B.SYS AND A.PRN = B.PRN AND A.AGT = B.AGT);</pre>