This reply will be quite lengthy, so I apologize ahead of time. 🙂
To zero-in on the issue, I decided to simplify the form. I created a new list with very few columns:
Title
Score (Number)
Question1 (Choice)
Question2 (Choice)
Question3 (Choice)
Choices:
Yes
No
N/A
I created a basic form with an extra label to display the variable value during runtime

I made these changes to the form:
==========================================
Created a global variable in the OnNew event:
Set(varRunningTotal,0)
Added this to the OnChange event for each Question field to calculate responses
If(DataCardValue3.Selected.Value="Yes", Set(varRunningTotal,varRunningTotal + 1))
Attempted to pull the list value into the variable in the OnEdit event, but both approaches displayed an error
complaining of a data type mismatch
Attempt1: Set(varRunningTotal,DataCardValue2.text)
Attempt2: Set(varRunningTotal,Value(ThisItem.Score))
Removed it for now
Added this to the three events shown to reset the variable when the form closes
Set(varRunningTotal,0)
Added varRunningTotal to the Default property of the Score field to display the value.
==========================================
The idea is that when a user selects "Yes" to any of the questions, varRunningTotal will increment by 1 and the value is saved back to the Score field
When I saved and ran the form from the list, I input a simple form to give me a score of 3 and saved it.
I clicked on the list item to get into the edit form
The form loads and Score initially displays as 3 and then updates to 6 by the time the form loads

I have two main questions
- When loading the edit form, how to I set the variable to the stored list value for Score?
- What is causing the variable to persist after the form has closed?
I'm pretty sure this has something to do with the way I'm handling these variables, but not sure what I'm doing wrong.
Thanks for all your help!