I would always give the full version of any name at all, I think. Unless it's a name that has iceberged off the original and acquired independent existence - I wouldn't name a child
Elizabeth if I was going to call her
Bethan, but if I was going to call her
Bess, then I would. So, I'd use
Theodore rather than
Theo. More history, more possibilities. And I think
Theodore goes well enough with the names you've listed!