You should first try to get all groups including the Dynamic Distribution Groups. I believe (without having the possibility to test it here) that you need to remove both OU's from your definition.
Then, you can check for each group if it's a SecurityGroup. If not, it's a Dynamic Distribution Group...
Using ctx As New PrincipalContext
(ContextType.Domain, "MYLAN", "DC=mylan,DC=ac,DC=mycompany,DC=com")
Dim pGroup As New GroupPrincipal(ctx)
pGroup.Name = "*"
Dim pSearcher As New PrincipalSearcher()
pSearcher.QueryFilter = pGroup
Dim results As PrincipalSearchResult(Of Principal) = pSearcher.FindAll()
For Each p As Principal In results
Dim gp As GroupPrincipal = p
If Not gp.IsSecurityGroup Then listGroup.Items.Add(p.ToString())
Next
End Using
Disclaimer: untested code, no VS and no AD here...