Решение состоит в том, чтобы генерировать универсальные методы для методов в классе Select и иметь возможность инициировать универсальный список того же типа.
Type toType;
var GenericListOfType = typeof(List<>).MakeGenericType(new []{toType});
var ListOfType = Activator.CreateInstance(GenericListOfType);
MethodInfo GenericExecuteTypedList = typeof(Select).GetMethod("ExecuteTypedList").MakeGenericMethod(toType);
И вызовите этот метод следующим образом:
ListOfType = GenericExecuteTypedList.Invoke(new Select().From(toType.Name), null);
Метод From имеет перегрузку, которая принимает строковое значение.Передача имени типа работала нормально, в моем случае таблица и имя класса были идентичны.
Легко добавить некоторые операторы where непосредственно перед вызовом универсального метода.