Ваш фрагмент точно не говорит, что не так, но я предполагаю, что CombinePartListforView()
возвращает ссылку на PartList и поэтому заставляет MpartList указывать на тот же экземпляр, что и PartList.Вы, вероятно, не хотите изменять сами экземпляры списка, а только содержимое.
Попробуйте
MpartList = new List<ModifiedPartList>(CombinePartListforView(bar, ViewNum));
или убедитесь, что вы возвращаете новый экземпляр в этом методе.