Here is what I did:
1. Hide the native Inner Fire on a unit - BlzUnitDisableAbility(u, FourCC('Ainf'), false, true)
2. then add a custom Inner Fire to that unit - UnitAddAbility(u, <custom inner fire>)
3. then hide the custom Inner Fire on that unit - BlzUnitDisableAbility(u, <custom inner fire>, false, true)
4. then unhide the native Inner Fire - BlzUnitDisableAbility(u, FourCC('Ainf'), false, false)
After the final step the custom Inner Fire appears, seemingly having overridden the native one which I am unable to make re-appear.
Here is a video showing the problem.
I just spent an entire day debugging this so I thought I would share.
1. Hide the native Inner Fire on a unit - BlzUnitDisableAbility(u, FourCC('Ainf'), false, true)
2. then add a custom Inner Fire to that unit - UnitAddAbility(u, <custom inner fire>)
3. then hide the custom Inner Fire on that unit - BlzUnitDisableAbility(u, <custom inner fire>, false, true)
4. then unhide the native Inner Fire - BlzUnitDisableAbility(u, FourCC('Ainf'), false, false)
After the final step the custom Inner Fire appears, seemingly having overridden the native one which I am unable to make re-appear.
Here is a video showing the problem.
I just spent an entire day debugging this so I thought I would share.

