My point is you should never use FM_Touch if you want to get interactions between specific entities. You use FM_SetModel for trail and w_ models, not Touch(btw, you forgot to remove register_forward( FM_Touch, "forward_FM_Touch" ); from init).
In RemovePlayer_InvisGift don't check is_user_connected && IS_PLAYER, the same reasoning as for is_user_alive.
In forward_FM_PlaybackEvent you still create some vars inside the loop. Same for EVENT_OnBombDrop.
Other than this few things code looks ok, so fix this and, you know.