You're right that a018 contains the data for item icons, but it isn't actually necessary to edit this file to edit the icons!
TMs all use the same base icon, with different colour palettes depending on the move type. This is also true for HMs, which use a different base icon (which has the little notch on the top to tell you it's an HM).
There's a table in arm9.bin that links each item to its respective icon and colour palette. You can open arm9.bin with any Hex editor of your choice (e.g. HxD). The table starts at offset 0x100194, the rows are 4 byte pairs wide, and the layout is:
AA AA BB BB CC CC DD DD ...
A = Item ID in a017 (which defines item price, effect, etc), starting at 00 00
B = icon ID number (for TMs this is 8D 01, HMs are 9E 01)
C = palette ID number (see below)
D = corresponding pal park number (00 00 if item did not exist pre-Gen IV)
If you are just changing the type of HM moves, all you have to do is find the entry for that HM and change it's colour palette to the one that matches that type. For example, to make Cut (at offset 0x100eb4, AA AA = 0e 01) Bug type, replace the CC CC portion of the row with "62 02". This keeps the base HM icon but with a palette that matches the Bug type.
8E 01 9E 01 92 01 53 01 -> 8E 01 9E 01 62 02 53 01
You can work out which CC CC number corresponds to which type by looking at the other TMs/HMs. These run from offset 0x100BD4 (TM01 Focus Punch, AA AA = 32 01) to 0x100EE4 (HM08 Rock Climb, AA AA = 94 01). Some that I've figured out are:
Bug 62 02
Rock 9C 01
Normal 92 01
Psychic 9101
Water 90 01
Fighting 8E 01
If you want to change other Item IDs you can use a similar system. Also, you can use Tinke to look at the actual palettes / icons in a018 (navigate to a/0/1/8, extract the archive, then open the files inside).
Thanks to BluRose for his post on adding the Pixie plate, this is how I worked all this out!
https://www.pokecommunity.com/threa...-heart-gold-using-fairy-as-an-example.439891/
Hope this helps!