You can do this very easily with a hex editor.
You need to go to the offsets 45A5A4 and 45A80C
These are the offsets for the TM data. Each TM is made up of two bytes
eg. 08 01
This is equivalent to the index number 108, which is for Focus Punch.
All you need to do is change the two bytes of the TMs that you want to
replace with the index number of your move in the form YYXX.
Eg. 19B will become 9B 01
On an unrelated note I've found fixes for Coil and Quiver Dance that use 0 effect accuracy and 0 actual accuracy
It also allowed me to create Shell Smash.
Here are the codes:
Using this style of code in conjunction with Solarbeam's code I've found a way to make the Gen 5 growth,
where it raises ATK and SPATK by 1 stage in normal weather and 2 stages in Sunny Weather.
00 02 03 09 2E 85 3E 02 02 CF 15 2E 85 3E 02 02 D2 15 28 47 69 1D 08
00 02 03 09 2E 85 3E 02 02 E7 15 2E 85 3E 02 02 EA 15 28 47 69 1D 08
The bytes ZZ YY XX and ZZ2 YY2 XX2 point to the execution of the code under the weather,
wherein ZZ YY XX is normal weather, and ZZ2 YY2 XX2 is Sunny Weather.
I normally place them right behind eachother for conveniences sake.
It will use ZZ YY XX in Rain and Sandstorm as well.