Notice the difference in the key Key('Staff', '5486563022602240')
and your code that fetches ndb.Key(section.teacher.kind(), int(section.teacher.id())
these are different keys.
The first has a key_name defined (str) and your fetching successfully with an id (int).
Maybe you stored the wrong key in teacher the first time around.
How did you construct your original key ?