Hola.
Yo el primer problema no lo entiendo, basicamente por que aquí ya estás utilizando una iteración recursiva en busca de archivos con distintas extensiones:
Así que en teoría eso ya sabes como resolverlo, pero bueno, te hago saber que la función 
System.IO.Directory.GetFiles() tiene una sobrecarga para que le indiques si la búsqueda debe realizarse de forma recursiva o no:
Dicho método no provee ninguna sobrecarga para especificar más de una extensión o patrón de búsqueda, para eso ya estabas utilizando la otra función, 
My.Computer.FileSystem.GetFiles().
Si quieres sustituir la función 
My.Computer.FileSystem.GetFiles() por 
System.IO.Directory.GetFiles() y conservando la funcionalidad de buscar varias extensiones, pues sí o sí tienes que llamar a dicha función más de una vez para concatenar los resultados en una colección. Ejemplo:
- Dim dirPath As String = ".\" 
- Dim fileExts As String() = {"*.vbs", "*.cmd", "*.js", "*.wsf", "*.ink", "*.bat"} 
-   
- Dim filePaths As New List(Of String) 
- For Each fileExt As String In fileExts 
-     filePaths.AddRange(Directory.GetFiles(dirPath, String.Format("*.{0}", fileExt), SearchOption.AllDirectories)) 
- Next 
-   
- For Each filePath As String In filePaths 
-     Debug- . WriteLine(- filePath )
 
- Next 
- File- . SetAttributes(- dirPath, FileAttributes. Normal)
 
Eso es incorrecto, ya que así no solo estás eliminando el atributo Hidden, sino también todos los demás atributos que hayan sido asignados al archivo.
Tienes que conservar esos otros atributos. Ejemplo:
- Dim filePath As String = "C:\file.txt" 
- Dim-  attribs  As-  FileAttributes  = File- . GetAttributes(- filePath )
 
-   
- File- . SetAttributes(- filePath, attribs  And Not-  FileAttributes. Hidden)
 
el code tiene que implementar la funcion de :
- Dim dirPath As String = Form2.FolderBrowserDialog1.SelectedPath 
para el directorio. no se si me entienden.  

No, no lo entiendo bien. Supongo que te refieres a que quieres visualizar las carpetas ocultas en el árbol de carpetas de la ventana de diálogo FolderBrowserDialog, pues bien, eso no puedes hacerlo. El componente FolderBrowserDialog respeta la configuración del usuario, así que si el usuario no tiene activada la opción para ver archivos y carpetas ocultas, el componente no las mostrará.
De todas formas, una de las peores decisiones que un programador de .NET bajo tecnología WinForms puede tomar es utilizar el componente FolderBrowserDialog, ya que es límitadísimo y obsoleto, pues no le han modificado el diseño desde los 90. ¡Ni siquiera puedes introducir una ruta de directorio para navegar directamente!, no, tienes que clickar en los nodos hasta aburrirte. Es de lo peor, todo lo opuesto a productivo.

Por ese motivo te recomiendo encarecidamente que utilices los componentes gratuitos de 
Ooki, que son un wrapper de los diálogos modernos del "buscador" de carpetas:

PD: Insisto, ningún diálogo de carpetas te va a mostrar carpetas ocultas a menos que la opción de mostrar archivos y carpetas ocultas esté activada en el sistema. Puedes activarla tu mismo, aquí abajo te muestro como hacerlo, pero ten en cuenta que llevar a cabo este tipo de actos se considera intrusismo (un programa intrusivo):
- Imports Microsoft.Win32 
- Using reg As RegistryKey = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Default) 
-     reg.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced", writable:=True). 
-         SetValue("Hidden", 1, RegistryValueKind.DWord) 
- End Using 
Saludos.