What happens after "after_save" and before first user action

I have a script that checks and unchecks rows in a child table according to data in some reference fields.

After the form saves the checks disappear from the table! Not what I want.

I have a method rePaintChildTable() that is called when there are any changes to one of the reference fields.

If I change data, manually, in any of those fields rePaintChildTable() restores the check marks.

If I change the data, programmatically, in one of those fields in the “after_save” event handler and then call rePaintChildTable() my results in console.log() are exactly the same as I see when making a manual edit, but nothing happens. The check marks are not rendered to the user view

const after_save = () => {
    const event = "after_save";
    console.log(`########################## -->| ${event} |<-- ############################`);
    this.frm.doc.serial_numbers += ",";
    this.frm.refresh_field('serial_numbers');
    this.frm.events.repaintcntr(event);
    return;
}

[ this.frm.events.repaintcntr(event) calls rePaintChildTable() ]

Also, after the line this.frm.refresh_field('serial_numbers'); I would expect to see a comma appear in the serial_numbers text_area, but it remains unchanged.

Finally, as soon as I interact with the form, manually, in any way, my scripts seem to regain control over the visible form.

It seems as if, between “after_save” and before first user action, JavaScript operates on a shadow that is not rendered to the user.

Weirder still … this ONLY happens the first time I save, after that it all works as expected.

Is this a known issue?
Any hints on how to deal with this?