Risolto!!!
Avevo la soluzione sotto gli occhi ma la birra mi impediva la vista... 
Prima di tutto il file in questione non era app.config ma user.config
Dagli esempi/soluzioni che avevo trovato in rete non capivo cosa leggere e come dal file xml.
Dopo una breve studiatina sulla formattazione degli xml ho avuto l' illuminazione.
Con un file come quello che segue che ho utilizzato come test:
codice:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="test.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<test.My.MySettings>
<setting name="setting1_nome" serializeAs="String">
<value>setting1_valore</value>
</setting>
<setting name="setting2_nome" serializeAs="String">
<value>setting2_valore</value>
</setting>
<setting name="setting3_nome" serializeAs="String">
<value>setting3_valore</value>
</setting>
</test.My.MySettings>
</userSettings>
</configuration>
i nodi vanno letti come delle directory di un File System tipo:
/configuration/configSections/sectionGroup o /configuration/userSettings/test.My.MySettings
dove ogni nodo a dei sottonodi con delle proprietà.
Penso di aver spiegato malissimo il concetto...di seguito il codice che ho utilizzato con un file user.config come quello sopra in cui prima ottengo il nome del programma che lo ha generato e da questo verifico e salvo le impostazioni che mi servono.
Premessa:
l' ambiente di sviluppo è Microsoft Visual Basic 2010 Express
il file user.config deve seguire quella formattazione perchè il codice include percorsi assoluti
ci sono da gestire tutte le eccezioni del caso come valori "null" o impostazioni che variano
per esempio da "string" a "decimal"
codice:
Dim user_config_file As New Xml.XmlDocument
' file è il file user.config aperto con una openfiledialog
user_config_file.Load(file)
' indico il percorso del nodo da leggere per ottenere il nome del programma che ha generato
' il file user.config
Dim nome_programma_nodo As Xml.XmlNode = user_config_file.SelectSingleNode("/configuration/configSections/sectionGroup")
' variabile che conterrà il nome del programma
Dim nome_programma_nodo_testo As String
' ottengo il nome del programma
For a = 0 To nome_programma_nodo.ChildNodes.Count - 1 Step 1
nome_programma_nodo_testo = nome_programma_nodo.ChildNodes(a).Attributes("name").Value
Next
' indico il percorso "user setting" più il nome del programma
Dim node As Xml.XmlNode = user_config_file.SelectSingleNode("/configuration/userSettings/" & nome_programma_nodo_testo)
' variabile che conterrà il nome dell' impostazione
Dim nome_impostazione As String
' variabile che conterrà il valore dell' impostazione
Dim valore_impostazione As String
' leggo il nome del nodo ed il valore
For b = 0 To node.ChildNodes.Count - 1 Step 1
nome_impostazione = node.ChildNodes(b).Attributes("name").Value
valore_impostazione = node.ChildNodes(b).InnerText
' se il nome del nodo è uguale salvo il valore
If nome_impostazione = "setting1_nome" Then
My.Settings.setting1 = valore_impostazione
End If
If nome_impostazione = "setting2_nome" Then
My.Settings.setting2 = valore_impostazione
End If
If nome_impostazione = "setting3_nome" Then
My.Settings.setting3 = valore_impostazione
End If
Next
Eventuali pareri/consigli/critiche sono ben accetti.
Ciao e scusate la lunghezza del post.
Vincenzo