The main problem: Weapon categories.
I am fearing problems with the categories there:
_weaponType = ([_description, "<"] call BIS_fnc_splitString) select 0;
if(_weaponType in _weaponTypeDescriptionSearchString && (configName _x find "base") == -1 && !((configName _x) in _tempDuplicateFilterArray)) then {
if(_weaponType == "PCML Rocket Launcher") then {_weaponType = "Rocket Launcher"};