Não tenho certeza de qual formatação não é preservada, mas copiei manualmente uma planilha para uma nova pasta de trabalho e a formatação foi copiada corretamente (seu código deve funcionar)
Ou você pode tentar o seguinte, que salva cada folha como um .xlsm separado:
Option Explicit
Public Sub saveWS()
Dim ws As Worksheet
For Each ws In Worksheets
ws.SaveAs ws.Name, xlOpenXMLWorkbookMacroEnabled
Next
End Sub