Buen día yo lo logre así pero no puedo combinarlo con Orderby o otro Select adicional.
... // Código BaseSpecification
public Expression<Func<T, T>>? GroupBy { get; private set; }
... // Código SpecificationEvaluator
if (spec.GroupBy != null)
{
inputQuery = inputQuery.GroupBy(spec.GroupBy).Select(g =>
g.First()).AsQueryable();
}