Also, I dont think you need to do a ToList() here. I believe ObservableCollection() takes an IEnumerable which families already is. If you do a ToList, and then pass that to the ObservableCollection, then I think you will loop through all your records twice.
familyOC = new ObservableCollection(families.ToList());
Instead, try this, which should be a bit faster:
familyOC = new ObservableCollection(families);