It looks like the property returned by GetPropertyName () is of type Guid (I think from an error), but you are trying to compare it with the contents of the values [0], which you declare as a string.
Dynamic Linq allows you to define parameters in the where clause so you can do
string clause = propertyName + "= @1";
LambdaExpression expr = Dynamic.ParseLambda( typeof(YourType), typeof(bool), clause, values[0]);
YourType - IQueryable. , , IQueyable<Customer>, YourType Customer. , propertyName.
, Dynamic Linq , - YourType propertyName. , , - , .Where().