I'm working on a project right now where I have a SharePoint list as a data source. In my scenario, I have a "note" that gets added each time the record is updated. I tried using the append feature, and I actually got close using a gallery, etc.. But then I landed on this solution that I think might help you:
I have a label that displays the notes, but you can use a textbox, htmltext, etc.
On the Edit screen for the record, I added a button that opens a modal (it's just a group of rectangles and another textbox that appears on the highest layer, with a cancel and an ok button that makes everything trigger when it's clicked).
First, in App.OnStart, I set a variable to blank, like so:
App.OnStart = Set(varNotes, "");
Next, when the user selects a record, that is the only time we need them to add a note, so when the Edit screen becomes visible, I capture the value of that field and store it in the variable:
Screen_Edit.OnVisible = Set(varNotes, If(IsBlankOrError(Gallery2.Selected.StatusUpdateNotes, "", Gallery2.Selected.StatusUpdateNotes));
On the edit screen, I have a label that displays the variable varNotes.
lblNotes.Text = varNotes;
Now, on the edit page, with the modal open, looking at the "OK" button code, I set that variable to whatever is desired to see, and set the variable to that value:
Patch(MySPlistDataSource, LookUp(MySPlistDataSource, Title = txtUserNotesInput.Text),{StatusUpdateNotes: varNotes});
NotesOkButton.OnSelect = Set(varNotes, txtNotes.Text);
// And here I have various code elements that hide the modal group
When the last bit of code runs, it updates the label, and I don't have to refresh or do anything fancy, it just updates and the record itself also has the updated information.
You might also consider using UpdateIf() or UpdateContext(), but this works for me.
Please note that you'll need to update the Patch() function accordingly for your scenario if you choose to use it, but hopefully this gets you started.
edit: after re-reading the OP's post, I think they may benefit from using a timer, set it to half a second (500), and then on Timer.OnEnd just set the variable to sum the input boxes. So every half a second, it'll update. You can adjust this down to 1/10th of a second but anything under 100 won't make a difference from what I can tell.