In Kerbal Space Program, I put up 3 geostationary "GPS" satellites. I spaced them evenly around Kerbin, around 120 degrees apart. They're all at the same (KSO) altitude and within 0.1 m/s speed, but after a few years of gameplay they're bunching up.

How can I get multiple satellites in KSO without them moving around too much?

The most important thing to consider is the semi-major axis of the orbit. That is what determines the period of your orbit. Even if the orbital velocity of your satellites are within a small margin of each other, if their semi-major axis are different by even a few meters (0.01% off), they will start to drift noticeably in just a few months.

Unfortunately, the stock game doesn't give you enough information to set up your orbits with the required precision. You need a mod like MechJeb, that will give you a full read out of your orbital parameters.

This is a problem even NASA has to work with (although technically for different reasons). IRL, spacecraft orbits are perturbed by Earth's tidal forces, gravitational interaction with the Moon and the Sun, and at lower altitudes, a very small amount of atmosphere.

According to the always reliable Wikipedia, geostationary satellites require about 45m/s of delta-v per year in maintenance. Some of the periodic burns that are done are on the order of mm/s, which is an amount of control we do not yet have.

Unfortunately there is no way to get it 100% without editing the file. I had my orbital period dead on 6 hours and even then it drifted. You just don't have the superfine control to be able to get it that accurate.

In the cfg you will see that the orbital parameters go down to something like 15 decimal places. Even accuracies that fine will eventually throw your orbit oat unless it's dead zero.