Looks very strange. Can you try two things:
1) Try to copy this assembly manually and run your code
2) Try to use DM API instead File.Copy to copy the document: ISwDMApplication::CopyDocument
Artem Taturevych, Application Engineer at Intercad (Australia)
translationXpert – add-in to translate SolidWorks models
I remember running into this in the past.
I think you have to call SWDMDocument:GetAllExternalReferences4 - not sure why - just what the API documentation says to do.
Then call SWDMDocument:ReplaceReference for each of the parts to replace.
Here is a snippet from a working VBA macro:
Dim varRef As Variant, brokenRefVar As Variant, IsVirtual As Variant, myTimeStamp As Variant
Dim myDoc As SwDMDocument13
Set myDoc = myApp.GetDocument(aFile, swDmDocumentAssembly, False, errors)
If Not myDoc Is Nothing Then
varRef = myDoc.GetAllExternalReferences4(src, brokenRefVar, IsVirtual, myTimeStamp)
If Not IsEmpty(varRef) Then
For i = 0 To UBound(myComps) 'myComps is an array of filenames to be replaced. myReps is an array of the same size containing the filenames to replace with
myDoc.ReplaceReference myComps(i), myReps(i)