When setting the property value it selects the property by index:
properties[i].SetValue(item, Convert.ChangeType(values[i], properties[i].PropertyType), null);
If you have set UseSingleLineHeaderInCsv then it should get property by name item.GetProperty("propertyName"), this allows for the headers to be in a different order to how the properties are ordered.