Creating a custom inspector utilizing a list of class instances with serialization?

I’m sorry, but I’m having trouble finding help for this.
I am trying to create a line path editor with a combination of instance lists of 2 separate classes:
a class defining what a point in space is, and a path class that contains a list of said points, in turn creating a list of path instances, as follows:

NOTE: These a both included in one Monobehavior class & are edited for simplicity.

Point Class:

	[System.Serializable]
	public class WaypointClass
	{
		[SerializeField]
		private Vector3 _position = Vector3.zero;
		public Vector3 Position
		{
			get { return this._position; }
			set { this._position = value; }
		}
	}

And a Path class:

[System.Serializable]
	public class PathClass
	{
		[SerializeField]
		private string _name;
		public string Name
		{
			get { return this._name; }
			set { this._name = value; }
		}

		[SerializeField]
		private List<WaypointClass> _waypoints = new List<WaypointClass>();
		public List<WaypointClass> Waypoints
		{
			get { return this._waypoints; }
			set { this._waypoints = value; }
		}

		public WaypointClass AddWaypoint ()
		{
			WaypointClass point = new WaypointClass();
			Waypoints.Add (point);

			// ... does some more needed work here.

			return point;
		}

		public void RemoveWaypoint (WaypointClass point)
		{
			Waypoints.Remove (point);

			// ... does some more needed work here.
		}
	}
	[SerializeField]
	private List<PathClass> _paths = new List<PathClass>();
	public List<PathClass> Paths
	{
		get { return this._paths; }
		set { this._paths = value; }
	}

On the inspector side I know how setup a basic inspector using both the target method and the serializedObject method & would like to use the serializedObject method to keep them separate from prefabs Here is what I have so far:

I have serialization working for other, not mentioned areas not related to the paths themselves, but, am using targets as I don’t know how to get this working with lists of class instances & their individual pieces of data.

Most specifically, how can I use serialization & iterate down the instances of waypoints to access things like the Vector2 points (others including the stop time & spawn control enums)?
I can do this with the target method, but I need this to be prefab independent.

I may not have understood correctly as there is no script attached regarding the editor side.

You have 2 main methods :
SerializedObject.FindProperty that will give you a SerializedProperty object representing the variable you want to access in the class associated with the inspector (here MovingPlatform).

SerializedProperty.FindPropertyRelative that acts like the one before but the path given is relative to the object in the serialized property.

Assuming the field _paths at the end of the scripts attached is in MovingPlatform :

SerializedProperty pathListProperty = serializedObject.FindProperty("_paths");
SerializedProperty firstPathPorperty = pathListProperty.GetArrayElementAtIndex(0);
SerializedProperty firstPathNameProperty = firstPathProperty.FindPropertyRelative("_name");
SerializedProperty firstPathWaypointListProperty = firstPathProperty.FindPropertyRelative("_waypoints");
SerializedProperty firstPathFirstWaypointProperty = firstPathWaypointListProperty.GetArrayElementAtIndex(0);
SerializedProperty firstPathFirstWaypointPositionProperty = firstPathFirstWaypointProperty.FindPropertyRelative("_position");