One point here is your %used,ports variable having spaces before the tokens. This makes your tokens resolve to " Harl.xxxxx" instead of "Harl.xxxxx".
If you set it as so -> Harl.27500,Harl.27506,Harl.27508 <- it will work a lot better wink BTW, to add tokens to it without spaces, and ensuring there are no doubleups, /set %used.ports $addtok(%used.ports,Nick.12345,44)

This code assumes you have removed the spaces from %used.ports first.
Code:
on *:text:$($me kill &):#winbolo:{
  var %a = . $+ $3 
  if $matchtok(%used.ports,%a,1,44) {
    var %tok = $v1
    if $+($nick,%a) == %tok || $nick isop # || $nick == %owner {
      run wonkaDSctl.exe quit $3
      set %used.ports $remtok(%used.ports,%tok,44)
      msg #winbolo Bang! $nick has just killed game on port $3 
    }
    else msg #winbolo Sorry, only the person that started the game, the bot owner or an op may kill that game.
  }
  else msg #winbolo Sorry, that game wasn't found.
}