Just as a note i had the same issue with this, the custom moh works when you are calling in or out and you transfer or put a call on hold from the extension itself but when using an ivr you get the default. The way i have fixed this is to simply use ring groups, if you setup a ring group for the extension and the point the ivr option to the group, edit the ring file that it plays when its being called to your moh file and simply put the extension in it then that sorts the ivr transfer issue.