I guess the dyno stuff only needs to be run on the server and is still working fine for you. Never used it myself though.
Well, you are only removing items from units on the server, so players won't necessarily get their items removed since add/remove commands need to be run local to the object being affected. Run that code everywhere, not just on the server, and it will ignore all the units that aren't local to the script being run (and ensure that, on player machines, the player is synchronised before running it, as I explain next).
On clients, the objects aren't created by the time init.sqf is started, so you need to ensure you wait until the object initialisation phase is completed before you start doing things with the player object (or other objects, for that matter):
if (not isDedicated) then { waitUntil { alive player } };