How are you instantiating the TabInfo object? This should work:
Dim tc As New TabController
Dim ti As DotNetNuke.Entities.Tabs.TabInfo = tc.GetTab(TabId, PortalId, False)
Dim AuthorizedRoles As String = ti.AuthorizedRoles
Note that in DNN 4.x, the GetTab(ByVal TabId As Integer) method is marked obsolete and has been replaced by:
Public Function GetTab(ByVal TabId As Integer, ByVal PortalId As Integer, ByVal IgnoreCache As Boolean) As DotNetNuke.Entities.Tabs.TabInfo
Also note that TabInfo.AuthorizedRoles returns a semi-colon delimited string of the rolenames which have VIEW permissions on the tab. If you still find that you are not able to return the AuthorizedRoles string from the TabInfo object, the same results (and also those for PermissionKeys other than VIEW) as follows:
Dim pc As New DotNetNuke.Security.Permissions.TabPermissionController
Dim tpc As DotNetNuke.Security.Permissions.TabPermissionCollection = pc.GetTabPermissionsCollectionByTabID(TabId, PortalId)
Dim AuthorizedRoles As String = pc.GetTabPermissions(tpc, "VIEW")