I'm a little confused because you said you want all certs but then you're trying to ask questions about finding certs. Note that there are a lot of certs on machines so enumerating them all is going to be slow.
Certs are contained per store so to get all the certs you'd have to open all the stores one by one. For each store you can then use the Certificates property to enumerate the certs in that store.
Dim store As New X509Store(StoreName.Root, StoreLocation.LocalMachine)
store.Open(OpenFlags.ReadOnly)
For Each cert In store.Certificates
Console.WriteLine($"Subject: {cert.Subject} Issuer: {cert.Issuer}")
Next
store.Close()
As for getting the email I don't know what you're referring to. There is no email associated with a cert. You can get the properties associated with a cert that may have some metadata that has an email but that would depend on the cert.
The issued to and issuer are always the same from what I've seen.