This works for me with surnames that have a ' character in them.
if (Surname.Contains("'"))
{
String[] Names = Surname.Split('\'').ToArray();
Surname = textInfo.ToTitleCase(Names[0].ToString());
Surname += "''";
Surname += textInfo.ToTitleCase(Names[1].ToString());
}