I created scene called NPC.tscn which has NPC.gd. I create a level and drag+drop in 2 instances of my scene NPC.
Then I went back to the original scene and added a new function to the NPC.gd, but the instances in my level do not seem to have those functions when I check their scripts. When I click their scripts they both are pointing to (referencing?) NPC.tscn:5 - both are referencing this.

Am I missing something here?

First thought that occurs is: Did you close and reopen all the relevant scenes to make sure all the changes have perpetuated?

When I closed and opened Godot, the changes were there. But it's not great if I have to close and open scenes for changes in inherited scripts ?
I will try that next time im in the project.

I don't think you should need to close/open the whole editor. Just reloading the specific scenes/tabs should do it afaik.