Try using a category filter on your FilteredElementCollector instead of checking to see if the category name contains "Scope Boxes". If your linked Revit models are in another language, your check for the name of the category would fail.
.OfCategory(BuiltInCategory.OST_VolumeOfInterest)
It's not immediately obvious, but OST_VolumeOfInterest is the category that scope boxes belong to.
This should also increase the performance of your code by a fair bit, since you are now only retrieving scope boxes instead of checking every instance element in the project.
I wrote a quick test macro and was able to retrieve the scope boxes from a linked model (Revit 2015).
public void ScopeBoxTest()
{
Document doc = this.ActiveUIDocument.Document;
//Helper function
var loadedLinkDocs = doc.GetLoadedLinkedDocuments();
var firstDoc = loadedLinkDocs.First();
var linkedScopeBoxes = new FilteredElementCollector(firstDoc).OfCategory(BuiltInCategory.OST_VolumeOfInterest).ToList();
TaskDialog.Show("Result", string.Format("{0} scope boxes found in linked model", linkedScopeBoxes.Count));
}