There should only be one EVENT_ITEM subroutine per quest file. You need to combine them all into one. Then place each valid turn in combination in an if clause.
Code:
If (plugin::check_handin(...)) {
do something
} elsif (plugin::check_handin(...)) {
do something else
} elsif (plugin::check_handin(...)) {
do whatever this is
}
if (scalar keys %itemcount > 0) {
quest::say("I don't need these items");
plugin::return_items(\%itemcount)
}
the check_handin plugin will remove any items required from %itemcount
when the routine is finished, it will check to see if there are still any items that were turned in but not needed. If so, it will return them.
If you want to allow for multiple quests to be completed with a single hand in, just change the elsif to an if. Each step will remove any items it needed from the turn in.
Nothing will be returned to the player unless you either explicitly summon it and/or use the return_items plugin.