**着く** is the most basic word you use when something arrives at a location.

**到着する** has nothing different with 着く except it is a Sino-Japanese word that sounds slightly more formal. Besides, it is easily turned into a noun 到着 "arrival" which 着く is normally not able.

**届く** is literally closer to "reach", but more specifically telling that something is at the location to be passed to somebody. A train stops at a station doesn't mean the station obtains the train, so you can't say 届く. Also not for people unless you're committing human trafficking.

> 飛行機が空港に着く = 飛行機が空港に到着する _the plane arrives at the airport_

> 飛行機が空港に届く _the plane is delivered to the airport_