What is the difference between the two?
The x509Certificate was introduced in .NET v1.0/1.1 and was (comparatively) limited in its functionality. It can be used to get information about an existing certificate (valid dates, issuer, etc.). It had simple methods/operations (i.e. reading a cert from disk).
The x509Certificate2 is a subclass of x509Certificate with additional functionality.