They all have different connotations, on the other hand, they can also be used interchangebly. There is also a matter of dialect, and poetry will be looser than prose, but I won’t go into that now.
Given that, I’ll give a rough outline of what the nuances are, but keep in mind that I am most familiar with Homeric Greek.
eu - this is the one which is most likely to be used as an adverb and as a prefix in a compound word, but is rarely (if ever) used as a stand alone adjective. It’s probably the most general in meaning. I don’t have my dictionary which has a nice catalogue of Indo-European roots at hand - but I am almost certain that “eu” is a basic I-E word with cognates in other I-E languages.
agathos - this is often translated as “brave” - which it does mean, but it also means reliable, competent, high quality, basically, what you look for in a prospective employee (or, in ancient times, a warrior). I do not know anything about the etymology.
esthlos - this is the one you are most likely to see in the context of “good vs. evil” (in other words, when ethics are involved), though the other words for “good” might appear in that context as well. It can also mean reliable and competent, and shares a lot of territory with agathos. After all, in ancient times, a ship which was shoddily built was quite evil (kakh in Greek, which is the feminine of kakos) since it could cause a lot of grief, even though we don’t think of it that way now.
kalos - this does generally mean “good” as in “beautiful” and “nice” - indeed, there is no other word which means “beautiful” which is used as frequently as the English word - but I have also seen it in contexts where it means “reliable” (as in, not likely to turn traitor), and it is somewhat interchangeable with the other words for good.