I have working in a not dissimilar industry and had the following setup;

TrainTestSuite (this might be per supplier/operator)

-testcase->SingleBooking 

-testcase->ReturnBooking

Both would utilize the same endpoint as the Test Suite

Within each test case I would have the following;

- Properties (containing from and to locations)
- PropertyTransfer (Transfer values to JsonSingleRQ using xpath)
- JsonSingleRQ (your JSON request)


Duplicate this for your return journeys (obviously with additional values in the properties).  I would suggest to treat them as independent values rather than transferring to opposing targets on the return.