Livebearers like guppies, mollies, swordtails & platies are regularly infected with gill flukes and intestinal worms. If the fish are fat and eating well, but not producing any babies, then worms is the most likely cause.
Intestinal Worms like tapeworm and threadworms normally cause the fish to lose weight, continue eating and swimming normally, and do a stringy white poop. Fish can do this for months and not be too badly affected. In some cases, fish with a bad worm infestation will actually gain weight and get fat and look like a pregnant guppy. This is due to the huge number of worms inside the fish.
You can use Praziquantel to treat tapeworm and gill flukes. And Levamisole to treat thread/ round worms. If you can't find these medications, look for Flubendazole, which treats both lots of worms.
In the UK look for:
eSHa gdex contains praziquantel that treats tapeworm and gill flukes.
eSHa-ndx contains levamisole and treats thread/ round worms.
Remove carbon from filters before treatment and increase aeration/ surface turbulence to maximise oxygen levels in the water.
You treat the fish once a week for 4 weeks. The first treatment will kill any worms in the fish. The second, third and forth treatments kill any baby worms that hatch from eggs inside the fish's digestive tract.
Treat every fish tank in the house at the same time to prevent cross contamination.
You do a 75% water change and complete gravel clean 24-48 hours after treatment. Clean the filter 24 hours after treatment too.
Do not use the 2 medications together. If you want to treat both medications in a short space of time, use Praziquantel on day one. Do a 75% water change and gravel clean the substrate on day 2 & 3. Treat the tank with Levamisole on day 4 and do a 75% water change and gravel clean on day 5, 6 & 7 and then start with Praziquantel again on day 8.
The water changes will remove most of the medication so you don't overdose the fish the next time you treat them. The gravel cleaning will suck out any worms and eggs that have been expelled by the fish. Repeating the treatment for 3-4 doses at weekly intervals will kill any worms that hatch from eggs. At the end of the treatment you will have healthier fish.
-----------------
It is preferable not to keep swordtails and platies in the same tank because swordtails are more aggressive and male swordtails will bully male platies and breed with the female platies. So even if the male platy is sterile, the male swordtail should breed with the platies.