I have problems binding both a telerik RadGrid and a plain vanilla ASP.NET GridView to the results of the following LINQ to entities query. In both cases the grids contain
One difference between your working and broken queries is the orderby clause. I found a documented bug in the orderby implementation in Linq to Entities... there may be others.
Try removing orderby from the broken query and see if you still get duplicates.
Another difference is the OR in the where clause. Try using only the first part [ where dp.LastName.StartsWith(searchTerm) ] and see if you still get duplicates.