It's actually a bug. Workaround: I had to actually change the type to interactive grid or something else and then back to interactive report for the column ordering changes to reflect.
It's a pain, all the formatting of the interactive report is also lost
This is expected behaviour.
When you first create an IR, the default report format will include all the columns, in the order in which they are defined in the query. Changing the order of the columns within Apex, however, does not affect the default report format - to change the order for end users you need to run the application, change the column order using the Actions menu, then Save the report as the new default report format.
Notice that when you add a new column to the query, the new column is automatically added to the default report format at the far right - regardless of the position of the column in your query.
When you changed your IR to an IG and back again, it's akin to deleting and recreating the IR, so the default report format got reset. But you don't need to go to this extreme to do what you want to do.