Theo - Lovely, classic. I'd call him Theodore so he has the option of using a longer name if he wanted, and just call him Theo.
Keegan - Sorry, I dislike this. Makes me think of pubs and footballers, or youths in baseball caps looking shifty outside ASDA.
Koa - Never heard this before. It's OK. Like Noah but different.