Issues with initial values in MbscSelect

I have the following setup.

In my component:

<div *ngIf="guardian">
  <input type="text" class="form-control" name="studentPicker" #stInput placeholder="Please select..." />
  <mbsc-select [data]="allStudents" name="mbscStudentPicker" [options]="studentOptions" [element]="stInput" [(ngModel)]="guardian.studentIds">
  </mbsc-select>
</div>

Behind the scenes:

ngOnInit(): void {
      httpCall('/Guardian/Get', { id: this.guardianId }).then((results) => {
        this.allStudents.push(...results.fullStudents.map(s => structuredClone(s)));
        this.guardian = results;
      }, () => { });
  }
  
  guardian: GuardianInformation;
  allStudents: MbscSelectDataLikeObject[] = [];
  filterCount: number = 1;
  studentOptions: MbscSelectOptions = {
    selectMultiple: true,
    filter: true,
    showOnFocus: true,
    onFilter: (ev: MbscSelectOnFilterEvent) => {
      var fCt = ++this.filterCount;
      this.allStudents = [];
      if (ev.filterText) {
        httpCall('/Student/FilterList', { query: ev.filterText }).then((data) => {
          if (fCt == this.filterCount) {
            this.allStudents = data;
          }
        }, () => { });
      }
      return false;
    }
  };

class GuardianInformation {
  studentIds: string[];
  fullStudents: MbscSelectDataLikeObject[];
}

When my call to get the Guardian up front returns, I have a single student already present: { value: “123”, text: “Ben Smith” }. And he shows properly in the control. When I click on the control, the filter area opens and I can see “Ben Smith” checked in the list. When I search for “Doe”, and the search returns [{ value: “456”, text: “John Doe” }, { value: “789”, text: “Jack Doe” }]. Then, when I click on either of the returned rows, I lose Ben as part of the selection. I want it to add to the existing array, not replace it. What am I missing? I’ve tried the OnChange event, but it sends back the entire selected array, which I can’t trust to know if the user was trying to select or unselect anything. Is there some setting or trick to get the system to remember what was selected when starting with a set of values? There are scenarios where the initial set may be 20 items. Asking the user to reselect them all isn’t feasible. What can I do to make this behave as expected?