Работа с вашим app.config на лету немного ужасна.
Я бы посоветовал не хранить строку подключения среди других настроек nhibernate. Сохраните различные строки подключения в другом месте (например, в appSettings), затем установите соответствующую строку подключения непосредственно в соответствии с вашей конфигурацией NH:
var configuration = new Configuration();
configuration.SetProperty("connection.connection_string", "...connection string...");
configuration.Configure();
Просто убедитесь, что в файле конфигурации не указан параметр connection.connection_string, так как конфигурация. SetProperty будет работать правильно только в том случае, если этот параметр еще не установлен.