I\'m trying to set up Schema.org metadata on a site at the moment, and I\'m wondering how (or if) to declare multiple currencies. I have 6 formats of the price - GBP, USD and EU
It's really the Offer that has a price associated with it. If you look at the second example on the Offer schema page, you'll see multiple offers associated with a single product. They're from different sellers (and don't specify the price in a machine readable way), but you could do the same thing with multiple offers in different currencies from the same seller.
I'm not sure there is a way to express inclusive or exclusive of VAT in the schema, so you may be stuck with just text labels for that.
If it’s the same Offer
and you allow payment in multiple currencies, you could use multiple priceSpecification properties.
Each property has a PriceSpecification as value, which can have a price (via price property) and a currency (via priceCurrency property).
how does the search engine decide which one to show?
That’s up to the search engines. When you specify the currency, they have all they need to know (if or if not they use this information is a different question, off-topic for SO). Schema.org doesn’t provide a way to mark a "primary" PriceSpecification, and why should they? After all, all your prices are valid.