I'm also VERY confused about the trains and buses.
It's ok that you are confused, Polish people also get confused with this. It even happens that for example someone boards a wrong train than the one for which he has a ticket (although going to the same town), and gets a fine... Be careful with such things.
The proper website for booking long-distance trains (TLK, IC, EIC and EIP train types) is intercity.pl You make a reservation and just print out your ticket. Even better is to make a booking at the counter, but you have no such a possibility as you are abroad (unless through an intermediary agency, but I don't think it's worth that, they will charge you for the service). You can make a booking max. a month in advance. Sometimes shorter if the schedules are gonna change (and it may be so in your case, there is a big train schedule change in the whole Europe at the beginning of December every year).
Normally if you want to use 2 trains (or more) with a transfer between them (it works also for longer, few-hour, breaks, but if you go there and back to the same station, you need at least two tickets), you can buy a single ticket for the whole route (only in some cases it's better to buy separate tickets due to special offers) - but it doesn't work online. Anyway, it's likely it's better for you to buy tickets online in advance, even if you have to change between two trains (although you must buy separate tickets then), but it depends on the specific case. Also buy them in advance if you want to travel in the rush time (for example just before or just after Christmas), because otherwise you may get no seat (the best is to avoid travelling by train in such a time at all, they are just full and crowded then). And the ticket prices aren't high anyway, so it will probably have no such a meaning for you.
For local trains (Regio and "osobowy") you don't have to make any bookings, because the price is constant regardless of whether you buy the ticket a month before or just before boarding the train. Just be at the station a few minutes before to buy the ticket (sometimes there are queues). Check what a company operates the train you want to take, and look for its sign on the counters, as it happens that not all the counters sell the tickets for trains of all the companies! If there is no open ticket counter, no ticket counter at all, or no ticket counter sells the tickets for the train you want to take, then you can buy the ticket from the railway officer (conductor) on the train, but you must go to him immediately once you board the train (he is usually near the first entrance to the train from its front and you should use this entrance in such a case). It works also for the long-distance trains, except for EIP.
By the way, you can almost always (except for the EIP) buy a ticket on the train once you board it, and the price is the same as at the counter, but if there is an open ticket counter at the station, they will charge you a service fee of something like 5 to 10 PLN.
TLK and IC, as well as the local trains, are very cheap (especially if you buy the ticket early in case of TLK/IC). EIC and EIP have more "western-European" prices, unless you manage to catch a ticket from a special offer (buying it early in advance). The difference between TLK and IC is that IC have better quality. Between EIC and EIP - EIC are standard trains (of high quality though), EIP - high speed trains, they are not much faster than EIC though. In all the trains, except for the local ones, you can choose between the class 1 and class 2, where the class 1 is more expensive but gives more comfort (there is usually less people, and there is more space for the passenger around a seat). A ticket for the class 1 might be a good option especially when you want to travel in the rush time.
The situation with the buses is a bit different since there is really many different companies (on the contrary to the trains, where there are 2 major ones and the others operating almost only locally). There are two possible schemes of buying tickets, depending on the company:
1) the price is constant and you buy the ticket from the driver once you board the bus (sometimes, but not always, you can also do this at the counter at the bus terminal)
2) the price depends on the time when you buy the ticket and you can buy it only online
The first scheme was the basic one, used almost everywhere in Poland (it has been used by the state company from the communist times - PKS - which has been divided into small companies and privatised, as well as adopted by the new small local bus companies emerging on the market), until a Scottish company came to Poland with the style (2), having a lot of success with it. Then the companies, using the scheme (1) until then, started to offer tickets according to the scheme (2), and also that Scottish company (called PolskiBus, so that people may think it's Polish) started to sell tickets at the counters, but not always at the main ticket counters of the bus terminals (sometimes in travel agencies and in other weird places), and for prices higher than online. Now these systems are quite mixed up, and you will find bus companies offering the tickets according to a one style to some extent and according to the other style to some extent.
As a rule of thumb:
- if a company has "PKS" in its name, it will sell tickets according to the style (1), but many of them offer also cheaper tickets to buy online in advance, they usually sell them through the website e-podroznik.pl
- for the buses of the "PolskiBus" company (sometimes it may appear as "Souter Holding"), buy the tickets online
- for all the other companies you must always check it (the websites of the bus companies are often Polish-only, but Google Translate may help), but usually it is the same as for those with "PKS" in their name
You will probably want to take a bus between Kraków and Zakopane, since buses are much faster on this route and they have much a better offer. The main company is Szwagropol. You can buy the ticket from the driver or online on the company website; by buying it on the website you can just be sure that the bus will take you in case it's full. But it shouldn't be a problem since the buses from Kraków to Zakopane are very frequent, and when not Szwagropol, then there are also buses which go through Kraków to Zakopane from the towns around the whole Poland, and you can also use them without any problem.
It's also different for the city buses. For them (as well for the trams, trolleybuses and for the Warsaw subway) you must buy the tickets before boarding the vehicle - either in a ticket vending machine (but not all the cities have them on many stops), or they are also sold by newspaper and small grocery shops. They usually work in such a way that they are valid for some time (for example 20 minutes or 60 minutes; they usually also offer tickets valid for 24 hours) after validating the ticket in a special device on the bus/tram/trolleybus or at the subway gates, which prints the current date, time and vehicle symbol on it (in some cases it may encode it on a magnetic strip as well). Within this time you can change between different vehicles however many times you want, you can also go there and back. Sometimes there might be also tickets for a single ride available, and they work in an exactly the same way with buying and validating them.
As someone has already mentioned, you can also take a plane, which might be good especially between the most remote places like from Kraków to Gdańsk. A company called Ryanair offers cheap flights (although you pay extra if you want to take something more than hand luggage). You may also have a look at the Lot, the Polish national flight operator - although they are more expensive.
Most of the buses don't work on the both Christmas days and on the New Year day, they also reduce their service on the Christmas Eve and New Year's Eve (especially in the evening). It's not so bad in case of the trains though, many of them work also on these days. Also the city public transport will reduce its operation, it will probably work like on Sundays.