Hi -
If you PasteSpecial instead of create a copy in VBA I think you can get what you want. My recorded macro looks like
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
I think you just have to be mre specific in your paste line of VBA to insure the columns are the same width as the original columns