Il Save lo faccio
per quello non capisco dove sia l'inghippo.
Con riferimento al tuo articolo:
...
protected override void OnAfterInstall(IDictionary savedState)
{
base.OnAfterInstall(savedState);
// IMPOSTAZIONI
Configurazione conf = new Configurazione();
conf.ShowDialog();
}
...
E la mia FORM Configurazione, fa:
MySqlConnectionStringBuilder connstr;
public Configurazione()
{
InitializeComponent();
}
private void btnApplica_Click(object sender, EventArgs e)
{
connstr.Server= txtServerMySql.Text;
connstr.Port = Convert.ToUInt32(txtPort.Text);
connstr.Database="nomeDB";
connstr.UserID = txtUsername.Text;
connstr.Password = txtPassword.Text;
Properties.Settings.Default.connstr = connstr.ConnectionString;
Properties.Settings.Default.Save();
MessageBox.Show(Properties.Settings.Default.connstr);
this.Close();
}
Ecco 
Luca