This may have to do with references set before the files were checked-in and made virtual.
How about trying to save the files externally (right click on file name, "save part in external file") somewhere in the vault, and them making them virtual in the assembly again?
If it works, and the assembly checks in, don't forget to delete the new external part files.
Hope this helps...
I too am having issues with virtual parts. All too often I go to check an assembly in, and get the message that these parts within the file that I wish to check in are "outside" SolidWorks. I wish the software programmers would address this issue as it slows down my workflow trying to find a resolution. Virtual parts are great and useful, but it seems that by virtue of the fact that they are contained within an assembly, they ought to be programmed in PDM to be given a pass for check-in.