I'd advise learning how to use github so that you can add non-story changes like bug fixes to the F2P branch while not having to give away the content in the paid branch.
I know github just knowing github doesn't solve the issues.
I want to believe that you're not doing this on purpose. I believe what's actually happening is that you don't know how to use github or something so you only have one set of code. This means that to release a bug fix you'd also have to release content that you aren't planning to release yet which is causing you to fix bugs and forcing F2Ps to wait.
The process behind game dev is way more complicated. I am dev with experience making other games.
Let's say that in 0.20 I introduce a bug that I am not aware of. Month later I get a message. Hey fix this. I fix this in 0.23.
Now I would have to reupload version 0.23 next to supporter version. I have at this point double the versions (which would be from 3 to 6) I need to keep track of. Not only this, but every single branch made like this would take me time to reupload. While I can be spending time on making other things.
It's fun but because it's custom made the length of the content is pretty short.
As you can tell it's custom, but not only the animations and characters are custom. I spend HOURS on custom code, because I want to be satisfied not only in the game itself, but also the internal code behind the scenes which I would be able to reuse later when I need it. If I wouldn't be doing that I would just choose renpy since it's more stable with less features that I want to make.
Imagine this also. I make code in 0.20 with a story. I need to change the code to include a
new feature in 0.21. I make the code change.
But wait... there was a bug in 0.20
old code ( which is no longer present on 0.21). Now I would need to go back to 0.20 spend another few hours fixing a code that would be not even used past 0.21. Yet guess what, there is 3x the 'branches' I need to keep track of. That's waste of time and no one does this other than people who can afford programmers to maintain other branches. Even more, most people who can afford few cheap devs don't do this. It's just unrealistic.
I don't know where are you seeing 'free to play branches'. Games that I see are just pushing builds further and further. Click any of the most popular games and you will see there are only branches synchronized with patreon. They keep one changelog. In reality if there would be a FIX on their changelogs, would have an information next to entry "This code was brought to free branch". Since they obviously wouldn't bring patreon delayed new features back to the free branches.
At the end I'm sorry if this kind of versioning doesn't satisfy you, but when I am working 10+ hours a day on code, I don't want to take away in reality half of this time just to code bug fixes in legacy code that I would throw away in version with new feature. It's just unrealistic for me to comply with that.
¯\_(ツ)_/¯ ❤