Hi Paul,
Wat is the duplicated effort in your case. I am used to have a tester, PO, or BA define the acceptance criteria in the user stories, ideally in the Gherkin syntax Given, When, Then. Then a developer will code it in BDD. There is not a duplication here, just a separation of tasks, definition versus implementation.
I don't have any experience or knowledge of JIRA XRay, but most modern solutions nowadays have an API to allow integration, so I would explore the API's of JIRA XRay, and see how you would be able to leverage the TestRunner API of the BDD Framework to integrate back the results to JIRA XRay.
Regards,
Daniel