I like
Theo. I do like it as a nickname for
Theodore but I think it works fine as a full name too - it's not too nicknamey or childish. I agree that
Theodore feels rather old and if you would always call him
Theo anyway, you might as well just have
Theo as the given name.