Custom Resources saving not working in 4.6.3 anymore

user:// isn’t the issue here, this is an editor plugin writing project data under res://. @export you already have.

ResourceSaver returning OK while Notepad still shows the old file usually means you’re not writing the object you think (or nested resources are still shared ExtResources and never get their own write). Same pattern showed up after a 4.6 upgrade here:

Right before save, print the property you just changed on current_npc_prop. If that print is already old, the inspector isn’t editing that instance.
Nested resources – if current_npc_prop holds other Resources, make them unique before save, then take_over_path + save like:

var path := "res://resources/npc_properties/%s.tres" % npc_prop
var to_save := current_npc_prop.duplicate(true)
to_save.take_over_path(path)
var err := ResourceSaver.save(to_save, path)
EditorInterface.get_resource_filesystem().update_file(path)

Difference from your version here is: duplicate into a fresh to_save after edits, path+save that instance, then update_file.

Right after save, read the file with FileAccess (or check modified time). If that is still old, the write isn’t hitting that path.
Also, how do you assign current_npc_prop when the dropdown changes; load(), cache, duplicate?