So in case you didn't find the error: it's a mistake in the macro, where the last line should be ".data" instead of ".code".
It's an error for all assemblers, of course - the point is that the error msg of the wasm derivates is misleading - for "newbies" it might be impossible to find out what's wrong.
Background: the difference of two relocatable symbols is a constant value - if both symbols are in the same segment. If not, the difference can only be calculated during the link step.
The problem of jwasm, uasm, asmc is that in the case of EQU, they generally assume - during pass 1 - that the difference is a valid constant. In pass 2, they "suddenly" realize that the difference is NOT a constant and hence the EQU symbol is to be a text macro.
And since a EQU constant cannot be redefined to a text macro, the assemblers emit this strange error message - it's surely a bug.