When a festival is going on you can buy them just about anywhere. I tend to buy mine at the little festival shops they set up but you can get them at any of the shops at Epcot. Yes, they will work anywhere that takes a Disney gift card. I say a Disney gift card because there are some places that are not Disney owned that do not take them. For example: the Swan and Dolphin are resorts on site but not owned by Disney, they do not take Disney gift cards.
As far as buying your own and punching a hole, that's totally up to you. I will say, when I was there in April a huge rain storm knocked out the card readers at the booths. They could read any card that could be swiped like a cc but not the wrist gift cards that had to be scanned. People who had regular Disney gift cards that look like a credit card could use theirs, I had the wrist kind and the number on the card had to entered into the cash register. This lasted the entire week I was there. The first day after the storm, maybe two CM's knew how to do it so it was a pain. By the second day, they had trained (or at least informed) all the CM's how to do it. This was not an issue at the stores or restaurants, only the festival booths. It is the only time I've had that happen but I have had times when the booths couldn't take any kind of card and only cash.