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.