Static archive database: SQL Server can't shrink it and leaves ~400G of unallocated space
There's 2 potential things at play here.  Shrink's algo takes the last page and moves it to the first empty spot, this creates massive fragmentation and could also create forwarding records.  The better idea is to rebuild your database on a different filegroup using a clustered index that's already defined pre data population.  

The other item could be a ghost clean up bug that was around in 2008.  I don't know what version you're running, but if it is 2008, ensure you are fully up to date on patches.

https://codingsight.com/moving-existing-table-from-primary-filegroup-to-different-filegroup/