I would guess that your privatekey.pfx is all you need. That extension is used for PKCS#12 files, which are containers usually having the certificate and the private key embedded.
An extra SSL_key_file must be PEM or DER (that's what the message says) but you should make progress by providing the .pfx file as SSL_cert_file and drop the SSL_key_file:
$ua = LWP::UserAgent->new;
$ua->ssl_opts(SSL_cert_file => 'privatekey.pfx');
$ua->ssl_opts(SSL_passwd_cb => sub { return "passwordvaluehere"; } );
$ua->ssl_opts(SSL_use_cert => '1');