Python 2, 57 bytes
f=lambda s,p="":s and f(s[:-3],p[1:]+"kMGT")+s[-3:]+p[:1]
Takes input as a string. If the output may have a trailing space, we can avoid some workarounds and save 3 bytes.
54 bytes
f=lambda s,p=" kMGT":s and f(s[:-3],p[1:])+s[-3:]+p[0]
One potentially-useful observation is that the string format '{:,}'.format
puts commas in the places we want to insert letters:
'{:,}'.format(1234567) == "1,234,567"
However, I haven't found a short enough way to use this.