If I understand correctly, some of your data has a , in the information (i.e. "smith, john" for the First Name). If this is the case, the only resolution would be to replace the , with some other delimiter using some sort of parser prior to constructing the URIs. Since the , is our delimiting character for the data stream, it will treat this as a new data field and cause the behavior you are seeing. This will be easy since you are using C# strings. Simply use the following string function to replace the comma's in all your strings with some other symbol:
This will replace all commas in the FirstName string with a semi-colon. You can pick any character you want that is not a reserved character for creating a valid URI as the delimiter.
There is no way to get around the comma being treated as a delimiter using the Bulk Activity API, just as there is no way to get around it when using Comma Delimited Text files. The only alternative I can suggest is to use the Contacts Collection API instead. It will require you to create a valid XML document, but you can use any symbols you want in the XML document.
Dave Berard Senior Product Manager, Constant Contact