You'd probably be best off taking Merseyrail as far as Chester. From Chester I can see Advance fares for £14.50 each way, even looking at travel tomorrow. You'll need to change at Shrewsbury or Crewe (there's currently only one direct train a day from Chester).
If you want flexible tickets, your ideal splitting points and tickets depend on when you want to travel. The absolute cheapest option is to get Off-Peak Day Returns splitting at Shrewsbury, Ludlow and Newport. This would cost £36.30 in total.
However all of these CDRs are priced by TfW and have restriction code AW, which means you can't start your outbound journey before 09:30, or your return journey between 16:00 and 18:29. That's quite restrictive for a day trip of that length, particularly if you're splitting.
Now, actually the
restriction code text says the following about the evening restriction:
Not valid for journeys starting between 16.00-18.29. Connections to journeys that started before 16.00 are unaffected by this restriction.
The use of the term 'journeys starting' rather than 'trains departing' could be interpreted as meaning that, as long as you started your return journey at a valid time - for example on the 15:50 Cardiff departure - you can continue notwithstanding the fact that your train would be departing from some of your split points between 16:00 and 18:29.
It's likely a moot point at the moment, because TfW conductors currently aren't doing revenue checks, but FWIW I could certainly see some conductors or revenue inspectors saying you need to pay the excess to the Anytime fare for any "Off-Peak part" of your journey.
If you want to avoid this grey area, then if you get an SDR Chester-Shrewsbury, an SVR Shrewsbury-Cwmbran and an SDR Cwmbran-Cardiff, you'd be valid to travel at any time. That would cost you a total of £40.35, which is just a few pounds more, so it's arguably worth it to avoid any hassle.