Первое переопределение IsReadyOnly()
в вашем CustomConfigSection
для возврата false.
Как только вы это сделаете, вы сможете сделать что-то вроде этого (это для ASP.NET, но это может быть переносимо):
System.Configuration.Configuration configFile = WebConfigurationManager.OpenWebConfiguration("~");
CustomConfigSection config = (CustomConfigSection)configFile.GetSection("Custom");
config.Tweak = 1;
config.Change = "foo";
configFile.Save();
Дайте это попробовать.