please consider to use event handlers or alternatively a microflow that updates the training object.
If you create the function of updating the register count as a sub microflow, being called from the one
triggered by UI action, you should not be running into a permission problem.
I understood that refresh client does not just update the current pop-up page but all pages containing
an object that gets its state updated (at least that's how react works).
One thing you may want to check is did you “Refresh in client” when you commit a new registration. If that option isn’t checked then it would do what you described. More on that here for changing an object and here for committing an object.
Another option you have is to run a microflow that updates the number you need when a change event happens in a text box, text area, drop down widget, etc or you could run a microflow when the user presses a submit/save button. More info on that here.