Not enough facts here for a tank being fish in cycled for at least 21 days
The tank is planted, what about that?
What is the pH?
What happened between day 9 and day 28? What were the readings?
What caused the spike?
What was the exact water change regimen. "doing regular 25% water changes every day or two depending on readings" isn't enough info, imo.
I made the mistake recently of reaching a wrong conclusion because I failed to get all the pertinent facts. I made some assumptions. I hope not to repeat that mistake ever again. I would hate to see it happen to others trying to help. As part of the effort to create an article on how to rescue a fish in cycle gone bad, I am working up an extensive questionnaire for people for try and fill in to help those who may give advice to do so having all the facts possible.
Guppies means more than one fish. Were any fish added since day one, did any fish die since then? How many and what size fish are in the tank. D we know?
A fish in cycle during phase one should take no longer, and likely less, than a full fishless cycle. This one is now in day 21, is this the beginning of a cycle? if it is, ow long woul that mean the whole process should take?
"The fish all look happy enough and weren't showing signs of distress."
How can this be at the levels reported? What about those who thing this level is really bad? The OP reported .1 ppm of ammonia is followed by a 30% wc and then next thing is an ammonia spike to 3.0 in how much time? Surely the fish were exposed to ammonia rising from al,ost 0 to 3 ppm for ,ore than a few hours? Perhaps a few days? We don't know.
I am just going to watch this thread for a bit rather than putting my suggestions in. It takes a lot of effort to get things assessed properly which means having all the data and history which is absent here. But I will offer one warning. The research seems to indicate that, from egg to old age, the life stage where fish are the most susceptible to ammonia is as fee swimming fry. Livebearers are eggs and spend most of their time as yolk sac fry inside mom. We may spot a fry now and then with some yolk sac left, but this isn't the rule. So your fry really need to be born into as close to 0 ammonia levels as possible and stay that way for some time. Juveniles exhibit the highest ammonia resistance in terms of life stage. And this raises another point, should female live bearers be used for fish in cycling? Since most come pregnant, is there any chance a tank will be cycled with fish in before they drop fry?
I also wonder why we should assume that just because fish do best in a given hardness range (or any other parameter) that a new fish keeper would have them in such water? I know how many mistakes I made as a newbie. My water is close to neutral and on the soft side (GH was barely 6 dh) yet I kept swordtails for years, including wilds.