Let me know if this solves your problem. If not please share a minimal runnable example.
class Solve(Screen):
final_question = StringProperty('TEST')
# def load_prb(q_id): This is wrong... need self.
def load_prb(self, q_id): # This is a class method, self gets passed in
...
# global final_question # Delete this
self.final_question = question #Kivy properties are accessed as instance variables, use self.
print('OK222 ', self.final_question)