un p'tit truc qui fait qu'on voit que tu viens du VB :)
newProp.PropertyType = Type.GetType("System.String");
peut s'écrire en C# en :
newProp.PropertyType = typeof(string);
Concernant ton problème "ConfigurationErrorsException
The setting {0} does not have either an ApplicationScopedSettingAttribute or UserScopedSettingAttribute."
As-tu essayé d'ajouter à la collection Attributes un attribute d'un des types spécifiés ?
Exemple :
newProp.Attributes.Add(new ApplicationScopedSettingAttribute());