I assume you have the weapons in your weapons.tbl/m?
101% sure that I do, because I tested all of these missions in the simulator--never experienced a problem like this, leading me to believe it was a campaign problem.
I get several errors of this nature on startup (fixable, I named some beams after the old Electrobeams mod and I can fix that in a matter of minutes, that is, provided one of you can tell me what the **** it means, because to me it looks self-contradictory.

:
Warning: Invalid +Index value of 0 specified for beam section on weapon 'ElecSmall'; valid values at this point are 0 to -1.
File: Weapons.cpp
Line: 2990
Call stack:
------------------------------------------------------------------
parse_weaponstbl() parse_modular_table() weapon_init() game_init() game_main() WinMain() WinMainCRTStartup() kernel32.dll 77061174()
ntdll.dll 7714b3f5()
ntdll.dll 7714b3c8()
------------------------------------------------------------------
However, this one is what I get while switching to the loadout screen. This might be of more interest to you.
Assert: Polygon_models[num]->id == model_num
File: ModelRead.cpp
Line: 3912
Call stack:
------------------------------------------------------------------
draw_model_rotating() weapon_select_do() game_do_state() gameseq_process_events() game_main() WinMain() WinMainCRTStartup() kernel32.dll 77061174()
ntdll.dll 7714b3f5()
ntdll.dll 7714b3c8()
------------------------------------------------------------------
Then, it "encounters a problem and needs to close."