Hi Paul,
I faced the same issue, the form gets dirty because in your data-ng-model="model.
AdvisorId" the value is originally an Integer but after page load and rendering the data type of your ng-model becomes a string value which makes your form dirty.
To solve this use below html code for your dropdown :-
<select ui-select2 data-ng-required="!model.Waiver" data-ng-model="model.AdvisorId" ng-options="ao.UserId as ao.LastFirst for ao in advisorOptions" data-placeholder="Advisor">
<option></option>
</select>
Here keep a blank option tag( <option></option> ) so that if no value is selected in your drop down it will show your data-placeholder string in it.
Thanks & Regards,
Vili