MethodInfo.Invokeメソッドによって呼び出したメソッドが例外をスローした場合、TargetInvocationExceptionがスローされます。 呼び出したメソッド内で発生した例外はTargetInvocationExceptionにラップされるため、実際にメソッドがスローした例外はInnerExceptionプロパティを参照することで取得することができます。

MethodInfoでのメソッド呼び出しでメソッドがスローした例外をキャッチする
Imports System
Imports System.Reflection

Class C
  Public Sub M()
    Throw New NotImplementedException()
  End Sub
End Class

Class Sample
  Shared Sub Main()
    Dim t As Type = GetType(C)

    Dim inst As Object = Activator.CreateInstance(t)

    Dim m As MethodInfo = t.GetMethod("M")

    Try
      m.Invoke(inst, Nothing)
    Catch ex As TargetInvocationException
      ' 呼び出したメソッドで例外が発生した場合、TargetInvocationExceptionがスローされる

      ' メソッドがスローした例外を取得する
      Console.WriteLine(ex.InnerException)
    End Try
  End Sub
End Class
実行結果
System.NotImplementedException: メソッドまたは操作は実装されていません。
   場所 C.M()

PropertyInfo.GetValue/SetValueおよびConstructorInfo.Invokeによってプロパティ・コンストラクタを呼び出した結果例外が発生した場合も、同様にTargetInvocationExceptionがスローされます。