When I'm porting, I just use the code of the original version with the mappings for the one I'm porting to and I look in the classes the missing methods are calling for similar signatures with similar names. I imagine this is harder for backporting and even harder for large version differences.
There are all kinds of changes involved in this process such as changing methods back to their old mappings. You may lose some functionalities by having to use an older version of Forge. You'll also have to get rid of the JSON models and use the code equivalent (not sure exactly how this is done since I started modding with 1.8). It's an annoying process and usually developers just tell their users to update since I'm pretty sure the general developer view is that it's outdated and needs to be left in the past.