I had the exact same issue but with various other nodes.
It seems that it is not specifically linked to the Xero API, but a limitation of how the nodes based on HTTP requests are handling the error messages when the error is caused by a HTTP response code (4xx, 5xx,…). Somehow, it does not return the full response but perform some sort of parsing and only provide some parts of the HTTP response body. This typically occur when the JSON returned by the query contain more than one message key or when the body uses multiple keys to provide more context.
In my case I was able to get around the issue by adding the Response option and enabling Never Errorin order to always get the full response body then extracting the necessary values from the output.
It is not very clean, but at least it allows to retrieve the full content of the response regardless of the HTTP status code.
