Algorithm generating a unique ID based on client name
First, I would expect from a function named GeneratePID to return the generated ID and not to set it. (Nobody likes side-effects)

private string GeneratePIDforNewPoint(string pointName)
{
    if(pointName == null)
        return "error";         

    var storedPIDs = _ds.GetPIDs(pointName[0]);
    var newPID = 0;        
    if(storedPIDs.Count &gt; 0) {
        var maximumStoredPID = _ds.GetPIDs(pointName[0]).Max();
        newPID = Int32.Parse(maximumStoredPID.substring(1)) + 1;
    }
    return pointName[0] + String.Format("{0:000}", newPID); 
}