@gertjan again, thanks for your ongoing help. I think I have worked out the issue.
Further reading of the log file shows that the API call that is being made is;
[Mon Nov 1 15:20:35 GMT 2021] body='<packet><customer><get-domain-list><filter/></get-domain-list></customer></packet>'
And that this call returns;
[Mon Nov 1 15:05:39 GMT 2021] The responses from the Plesk XML server were:
[Mon Nov 1 15:05:39 GMT 2021] retcode=0. Literal response:
[Mon Nov 1 15:05:39 GMT 2021] '<?xml version="1.0" encoding="UTF-8"?>
<packet version="1.6.9.1">
<customer>
<get-domain-list>
<result>
<status>ok</status>
</result>
</get-domain-list>
</customer>
</packet>'
Again, I am making an assumption here that this should have returned a list of domains in the result section but it isn't and that's a problem.
I then spotted that the API that's being called is a Customer related API, asking for a list of domains that a customer owns... So, I tried creating a customer (I don't use customers on this server), moved the required subscription over, changed the username and password in pfsense to the "customer" ones and we are in business.
So, to summarise. When pfsense asks for a username and password it needs to be the details for a plesk customer and the customer needs to own the subscription containing the domain you want to work with. Using and Admin account or a reseller account does not work.