I can't tell you if you have any specific problem. This code works fine for me, with an arbitrary sheet with data (and as its own sub), in Excel 2010:
Sub test()
Dim rng As Range
Set rng = Cells(6, 2)
rng.Resize(, 9).Cut
rng.Offset(, 19).Select
Selection.Insert Shift:=xlDown
rng.Resize(, 9).Delete Shift:=xlUp
End Sub
I added the 'select' bit because that's often helpful in testing - put a break on the select, run to it, then F8 the line; then see what's selected. If it errors right there, then there's something wrong with rng.offset(,19). If it succeeds and selects (something), then you can see where it thinks it should be inserting the data.
Edit: Commenting out the rng.Resize(,9).Delete seems to fix the problem - it's deleting the newly inserted cells. When you use rng.cut, and then paste the cells in, that seems to change the current location of rng. See this:
Sub test()
Dim rng As Range
Set rng = Cells(6, 2)
MsgBox (rng.Address)
rng.Resize(, 9).Cut
MsgBox (rng.Address)
rng.Offset(, 19).Insert Shift:=xlDown
MsgBox (rng.Address)
rng.Resize(, 9).Delete Shift:=xlUp
End Sub
Change 'cut' to 'copy' and the behavior changes. You may want to simply do that - change it to copy - as you delete the original cells anyway.