Well, altså problemet ved at ignorere egenskaber ved distinct er jo at du derved ikke har nogen ide om hvilken en af rækkerne som skal hentes ud.
Du kan evt blot hente CustomerId ud som følger:
var recipients = (from r in limsDataContext.Recipients
orderby r.ReportYear descending, r.ReportID descending
where r.CustomerID == (int)Session["CustomerID"]
select r.CustomerID).Distinct();
Dette henter dog kun CustomerID ud. Ellers skal du bruge group by som allerede nævnt.