One way would be to write a simple plugin that uses the OpenCPN API's
AddSingleWaypoint(PlugIn_Waypoint *waypoint, bool permament);
GetSingleWaypoint(wxString guid, PlugIn_Waypoint *waypoint);
to create, retrieve and update a waypoint.
In your plugin you would need to maintain some sort of reference to the waypoint guid and of course your plugin would need some form of communications
to the outside world , limited by only your requirements, imagination and programming skills.
The only caveat I have, is I have no idea whether OpenCPN adjusts it's active route
if a waypoint's properties (esp. Lat & Long) are changed mid-way.