Would you mind posting the loadout strings you mentioned, the ones which were missing stuff?
Good one:
Mk23-1,#Mk23SUP-1,#Mk23LAM-1,*Mk23-10,DE50-1,*DE50-10,DE50AE-1,
#DE50AESC-1,*DE50AE-10,M92F-1,*M92F-10,M93R-1,*M93R-10,1911-1,
*1911-10,FSVEN-1,*FSVEN-10,UDAR-1,*UDAR-10,M1S90-1,*M1S90-10,M3-1,
*M3-10,MAG7-1,*MAG7-10,+M67-10,*M7290-10,AT4-1,
that's 28 different things, and 238 characters.
A wrong one:
Mk23-1,*Mk23-10,DE50-1,*DE50-10,DE50AE-1,*DE50AE-10,M92F-1,
*M92F-10,M93R-1,*M93R-10,1911-1,*1911-10,FSVEN-1,*FSVEN-10,UDAR-1,
*UDAR-10,M1S90-1,*M1S90-10,M3-1,*M3-10,MAG7-1,*MAG7-10,
AKMSU-1,*AKMSUD-10,
that's 24 different things, and 199 characters. The AKMSU drums were missing.
There are those longer names, like INF_Core.INFc_FSVEN, maybe where these names are stored lies the problem.
Edit: I made a monster-loadout, this:
1911-1,*1911-1,Mk23-1,*Mk23-1,DE50-1,*DE50-1,DE50AE-1,*DE50AE-1,M92F-1,*M92F-1,M93R-1,
*M93R-1,FSVEN-1,*FSVEN-1,M1S90-1,*M1S90-1,M3-1,*M3-1,M82A1-1,*M82A1-1,RC50-1,*RC50-1,
PSG-1,*PSG-1,M14-1,*M14-1,VSSV-1,*VSSV-1,G36K-1,*G36K-1,XM8-1,*XM8-1,MP5K-1,*MP5K-1,
MP5A2-1,*MP5A2-1,MP540-1,*MP540-1,M16A4-1,*M16A4-1,M16-1,*M16-1,FAMAS-1,*FAMAS-1,
M4A1-1,*M4A1-1,SIG551-1,*SIG551-1,AKM-1,*AKM-1,*AKMdrum-1,HK416-1,*HK416-1,AKMSU-1,
BAKMSU-1,*AKMSUM-1,*AKMSUD-1,MicroUzi-1,*MicroUzi_sm-1,*MicroUzi_lm-1,MINIUZI-1,*MINIUZI-1,
P90-1,*P90-1,+M67-20,IMODNV-1,IMODBNCS-1,
and as you said, it kept the stuff that is at the front of the row. It had everything up until the MP5K, where it only had the weapon, but no ammo. Nothing from there on, no M67, no nightvision, no binocs. It kept 33 different things, the * character in the *MP5K-1 is the 248th in the string. Even the comma after the MP5K ammo is the 255th, I would think this should be in. But as I wrote above, loadouts with just 199 characters were missing stuff, so the limit should be elsewhere.