How to manage multiple engine versions on an actively developed code plugin?

I have a code plugin available for UE version 5.1 on the marketplace.
Now I want to make this plugin available for versions 5.2 and 5.3 as well.
In order to successfully compile for 5.2+, I need to make changes to my code that are not backwards-compatible with version 5.1 because of new engine code changes.

If the only thing I wanted was to make this existing code available to multiple versions, I could very easily just create branches in my version control, one for each 5.x editor version, and just make tiny changes until they all compile and build the plugin successfully.
However, I want to continue developing this plugin, which means adding new functionality, and most likely refactoring some existing functionality, so now I’m at a complete loss.
How the hell do I manage multiple engine versions, with their small modifications to the base code in several places, and still actively develop the plugin?

The reason I’m writing this complaint/cry for help now is because I’ve been looking for the answer to this for almost 2 years now
I can’t afford to access UDN where all the real information exists and none of the available forums I’ve asked around in have been able to give any answers.
I’ve even contacted official Epic/Unreal support multiple times but they are unwilling to help me figure this out.
(among 20+ other large issues I’ve had while trying to develop my plugin)
I find that incredibly strange since it is beneficial for both them and me if I sell assets on the official Unreal Marketplace.
But then again, UDN.

The only solution I can see, is to pick one version to work in, for example 5.3, continue my development, and every time I want to publish a new build, I have to literally copy-paste every single line of code into every other branch, while still making sure each branch maintains their unique engine code differences, and somehow just pour hours upon hours into making it all compatible.

That is absolutely insane on an unjustifiable scale, but WTF am I supposed to do at this point…?

My 2 options are to either go f***ing crazy over trying to maintain multiple versions of my plugin, or just give up and pick the latest version, compile for all compatible earlier versions and just delete all non-compatible versions and move on…
In the end that means less compatibility, less sales and less money earned for all the work I’ve put into this development.
It’s not a fun outcome.

This is how it has always been with software development.

Working on the latest version while keeping it backwards compatible would require some automation to verify your submissions that might make you avoid features that are not really necessary.
In the areas where older versions are not compatible you either have to solve it on the spot with ENGINE_MINOR_VERSION checks or deprecate it and have it skip the new implementation entirely.

There really is no perfect solution to this and no matter what it is going to require a lot of extra work keeping plugins backwards compatible.

Critical updates should be done to all versions while new features and improvements seem to be acceptable at the cost of updating the Engine.

Keeping documentation backwards compatible to reflect this is also a pain.