We've printed many shirts for charities, and have always tried to give these types of events the best deals we can afford to. What I've noticed is that either these guys will either include the price of the shirt in their "sign-up" fees, sell on-site, or even take orders during the event with some sort of order form.
Keep in mind a few things:
Screen printers usually have minimum quantity requirements, which determines pricing (try to estimate how many you'll need overall, you might eat a few, but more than likely be going back to your printer needing more once people see how nice they look). With that said, you may consider purchasing your screens to be held, and maybe your printer will give you a deal when you come back for more.
Depending on how much you'd like to profit from each shirt, keep the colors printed to a minimum (1-2 color design). Multi-colored prints don't always = "awesome". We print 1-2 color prints all time that look insane, very cool. This keeps your pricing down.
Also, maybe consider letting your printer put their logo on the shirt for a discount.