Hmmmm, well the Waypoint Set registers itself with the NavigationManager when Awake is called on the WaypointRig, is it possible that the code you pasted above is in the Awake of another script? If that is the case, moving it to Start should alleviate that particular problem.
If this is the case, the reason it works the first time is that Awake gets called when the editor creates the component initially.