So,
1) First of all, if your friend is a registered resident in Switzerland, then he can get Tageskarte Gemeinde (
http://www.tageskarte-gemeinde.ch). It is certain type of a day train pass for residents, most of the people living in Switzerland know about it.
For you, as non European citizen 4 day Swiss Pass will cost 126 euro. Let's count whether it worth it:
Regular tickets fares: Bern-Geneva-Bern (92 CHF); Bern-Zurich-Bern (92 CHF) + fare for the trips to the mountains. It is rather obvious that Swiss Youth Pass is cheaper option comparing to regular tickets, but Swiss Railways promised to reintroduce discounted domestic tickets called SuperSaver (
http://sparbillette.sbb.ch/home/?lang=4) since May 18th, so you might want to use those for your travels. For instance, previously SuperSaver discounted tickets Bern-Geneva used to cost only 13.8 CHF one way. As result, good chances that combination of SuperSaver tickets for each leg of your journeys within Switzerland would be cheaper then Swiss Pass.
2) Prague-Budapest can be really easily purchased online from the
official website of Czech Railways -
https://eshop.cd.cz/international/search_cd-mav.aspx It is in English and easy to navigate. Tickets start from only 19 euro and can be purchased any time between 60 to 3 days in advance. Better to do it earlier since tickets have limited availability.
Budapest-Vienna: Hungarian Railways do not sell tickets online, so you will have to buy them already in Budapest. Special discounted tickets are available - cost 13 euro (need to purchase those at least 3 days in advance). Regular one way fare is 24 euro.
Vienna-Munich: can be easily bought online from Austrian Railways website -
https://ticket.oebb.at/bin/frame_ticket.pl?ticket=jticket.pl?ABBFSEL=8100003&ANBFSEL=8000261&LANG=EN Cost from 29 euro, sold up to 90 days in advance.
If you have any further question - feel free to ask