Yes, I'm agreed with a comment, shared desen't contains enough information. I tried to simulate this, but my code works fine.
I guess, the error you mentioned is occurred with
var pkCert = _CertFile.PublicKey.Key;
using(var rsaCryptoServiceProvider = (RSACryptoServiceProvider) pkCert){
}
because the using block dispose the "pkCert" so that the next time when you calling that, pkCert is null .
Could you please try you code by removing the using block? Or could you please debug and check whether "_CertFile" is null in second time.