This;
(plugin::check_handin(\%itemcount, 30516 => 1)
does not always work for me - for whatever reason, it just will not work some times.
This;
($itemcount{30516} >= 1) 
Always works for me. So try changing all your "plugin::check_handin's" to this.
I do always include this at the end of the script;
	Code:
	  else{
    quest::say("Sorry, I can't use this.");
    plugin::return_items(\%itemcount);
  }
 So the player doesn't loose anything