As I recall, user defined macros should use a number higher than 100. "M" codes lower than 100 should be considered "reserved". Try renaming these to M106 and M107 and see if that makes a difference.
Also, just a side note: G53 is non-modal meaning that is is not remembered from one block to the next so the G90 statement is not necessary. G53 must be explicitly stated for each block you wish to have executed in Machine Coordinates and then reverts to the previous modal mode. So if you were operating in G90 prior to this macro running, G90 would still be in effect throughout the macro except for the one line that executes the G53 command. Even worse, putting the G90 in the macro could cause unexpected results if you were in G91 prior to running the macro and the remaining code after the macro expects to be in that mode instead.
When writing macros, I generally do not rely on the machine being in a specific state so if I'm going to set a mode (e.g. G90/91 or G20/21) during the running of a macro I will first store the current mode to a variable and then restore the mode from that variable at the end of the macro. Since your macro does not set a mode other than this closing G90 statement, this is not necessary and neither is the G90 itself.
Hope that helps,
Stephen "Highspeed" Kruse
P.S. If I'm remembering incorrectly about the macro numbers, someone please chime in here and correct that statement.