I would do a Croydon to Southampton return with a Reading to Swansea return, as a London to Southampton ticket allows travel via Reading, so your route is East Croydon to Southampton on the outbound of that return, then Southampton to Reading on the return part, break the journey in Reading, travel out to Swansea from Reading, then returning from Swansea you resume your Southampton to Croydon ticket at Reading which then covers you to East Croydon.
Depending on what time you travel at (the super off peak is not valid until 12 on a saturday), the London to Southampton ticket is £44 or £55, although it can be made cheaper if you buy a different fare and then excess it to the any permitted ticket for the return (for example, you can buy the via Barnham off peak return for £38.10, valid on any train on a saturday, and then excess the return ticket to the £44 super off peak return which allows travel via Reading and Paddington for the return), and then for Reading to Swansea it is cheapest to buy a Reading to Swindon return for £30.70 and a Swindon to Swansea return for £37.80.
While there are Southampton to Cardiff trains, this takes longer than via Reading since there is a nicely timed change from the Cross Country onto the Swansea service, and its also a long time on a Turbo compared to proper intercity trains if you go via Reading.