Testade nu att läsa in certifikatet från certificate store istället för från fil och det verkar fungera.
Kod:
string serial = "1b46f254ae99f31c";
X509Store store = new X509Store("My", StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certificates = store.Certificates.Find(X509FindType.FindBySerialNumber, serial, true);
X509Certificate2 certificate = certificates[0];
req.ClientCertificates.Add(certificate);
Så nu vet vi att det fungerar, nu gäller det bara att få det att fungera vid inläsning från fil istället. För det är inte direkt skalbart att behöva importera ett cert per kund när man har flera hundra kunder.