I've traced the problem to following line (2845) in BusinessLayer.vb
lcSelect &= Me.PrimaryKeyFields(lnCnt) & "='" & PrimaryKeyValues(lnCnt).ToString & "'"
I'd like to suggest the following fix to take into account that a character primary key may contain single quotes. I've added the fix locally and so far it's solved my problem and doesn't appear to introduce any other issues.
lcSelect &= Me.PrimaryKeyFields(lnCnt) & "='" & CStr(PrimaryKeyValues(lnCnt)).Replace("'", "''") & "'"