I have a similar problem. I have a database that was restored from Prod to Test. The DB has multiple secondary files. We have purged prod data from this copy and now I'm trying to complete a shrink, as well as use only one primary data file. There's still over 200 GB that I can not reclaim. When I run a shrink (DBCC SHRINKFILE (Testdatafile, EMPTYFILE) I receive this error:
Msg 2555, Level 16, State 2, Line 1
Cannot move all contents of file "Testdatafile" to other places to complete the emptyfile operation.
Here are the results of sp_spaceused:
Database Database Size Unallocated
TestDB1 235923.63 MB 226780.71 MB
Reserved Data Index Size Unused
1375528 KB 1062424 KB 269432 KB 43672 KB