This is trickier than I thougth it would be.
I think your are better making the pviewport then add the xdata that trying to copy the pviewport
Sub CopyVpLayerStates(Vp As AcadPViewport, NewVp As AcadPViewport, NewDoc As AcadDocument)
Dim Doc As AcadDocument
Dim Xd, Xv
Vp.GetXData "Acad", Xd, Xv
NewVp.SetXData Xd, Xv
NewVp.Update
NewDoc.MSpace = False
NewVp.Display (False)
NewVp.Display (True)
NewDoc.MSpace = True
End Sub