Updating PK values is problematic in my opinion. Anyway, you can do it with LLBLGen. Just try this in code:
var customer = new CustomerEntity("ALFKI");
var adapter = new DataAccessAdapter();
adapter.FetchEntity(customer);
customer.CustomerId = "XYZ";
adapter.SaveEntity(customer);
This of course will rise an FK VIOLATION exception, but the update query is sent.
Now, although this is possible, it's unclear how the grid manages it. For instance in the normal .net GridViews you can't edit the columns which are part of PK (DataKeyNames Grid's property).
Another thing that is unclear is how are you saving the entity or the collection because you are not using a datasource control, you are just binding the collection to the grid. So, at some place you must have a Save logic.
IMHO this is something regarded to the grid or your own code, as Walaa said. In order to help you further, please post more info, in special any relevant ASPX and code behind code that shows how are you saving the data.
Also could be helpful if you debug some grid events to see what is occurring when you update that PK value.