it was not a question of free patches, it was simply a matter of wanting to do it myself and understanding my mistakes all that ...
Well, let's see how to help you. I actually took the effort to download your files, I diffed them, I have the addresses for your bin (it is the same as my private one), and your patch is just different, not little different, totally different. Precisely how different - well, do not expect that anyone will reverse engineer what you did.
So, to get started, describe step by step exactly what you did, which patch you used as base, how you figured out the addresses and what they are according to you, how you patched your bin, which tools you used and how, and how did you try to check off-line that it is good (proper disassembly of your patched file to see that the patched code disassembles OK is a good start), other than trying to flash it and starting the car.
Then, maybe just maybe, it will be easier to spot what failed.
Another thing - it can be something as silly as unfixed checksums, code changes require a proper checksum procedure. Your posted modified file has one checksum missing, though it's the one that I personally believe does not matter, but you never know
EDIT: OK, it's very different because I posted only the earlier simplified version of the code, not the one with bells and whistles. The required addresses for my bin which is code wise the same as yours, are also posted.
EDIT2: Now I made the comparison to the right version. Most variable addresses seem to be wrong, and also you got the little/big endian order wrong in your far calls / jumps. In one case it even results in a jump to an odd memory address, regardless of other things, this certainly locks the code. So, scroll back to above, tells what you have done and how, and we start from there.