Python's json doesn't serialize set objects. I unfortunately can't submit a PR but the fix is relatively simple, in case anyone else encounters this issue.
line 553 of NodeGraphQt/base/model.py:
if accept_ptype not in connection_data:
connection_data[accept_ptype] = [accept_pname]
else:
# ensure data remains a set instead of list after json de-serialize
connection_data[accept_ptype] = list(set(connection_data[accept_ptype]) | {accept_pname})