When I host a bbq buffet type gathering, I always count on 1 for each person, i.e. 1 burger, 1 hot dog, 1 chicken, etc. Yes, I do have left overs, but there is never anyone short of food. So 20 people equals 20 hot dogs, 20 burgers, 20 pieces of chicken. As far as specialty items, like portabella mushrooms, etc., I would probably cook 20 also. Just because people like meat, doesn't mean they don't want to try non-meat items.
I understand how veggie "meats" are more expensive, (and are copying meat that I am also cooking), so what I would probably do is set up their likes in a different area from the regular buffet, mention it to them on the side, so they can get their "meat", and then proceed to the rest of the buffet.
When having a sit down dinner, I make the same quantity of every dish, enough for each guest to have a portion, no matter what the dish is. I would rather have leftovers (yum) than not enough food.
As far as the bbq though, I have a question: Many vegans do not want their food cooked near meat. How do you do that during a bbq? Do you use a separate grill? Just curious.