Intente usar StringBuilder.Replace en su lugar.
Debería mejorar notablemente el rendimiento.
Esto es válido como un string.Replace(..)
sustituir y no por regex
llamadas. Pero aparentemente el cuello de botella está en string
llamadas.
EDITAR :
Ejemplo (pesudocódigo ):
char[] c = new char[]{'.', ' '};
Value = Value.Trim(c);
var sb = new StringBuilder(Value);
sb.Replace("'", "");
sb.Replace(")", " ");
sb.Replace("(", " ");
sb.Replace("-", " ");
sb.Replace("_", " ");
sb.Replace("רח", "");