Matching the case of the field name was the answer.
The database column name is PartyID but I have EnforcePascalCasing turned on so the LLBLGen entity shows it as PartyId. The gridview picked up the fields from the LLBLGenDataSource2 and so it also shows it as PartyId.
One interesting thing I discovered after getting it working. The gridview doesn't care about the case of the field name (I already knew that) and everything will work just fine as long as the case of the fieldname in the LLBLGen entity matches the case of the value in the Name attribute of the parameter.
Thanks for your help, now it's time to do some more playing with this!