okay -- this does work! because add_bone uses a path so it must be doing it internally
polygon.clear_bones()
polygon.add_bone(bone.get_path(), weights)
Thank you so much!