The previous network system was really there as a placeholder, just rushed through to get something working. When networking an Entity you'd have to wrap it in an EntityHandle, or when networking a List you'd have to use a special NetList class instead. You'd also sometimes have to manually call NetworkDirty functions to get it to actually network.
Worse than all that, the entire thing was networked as 4 big byte arrays and any time the network was dirty we'd rebuild them, manually writing the entire class again.
Why 4? Regular, Predicted, Local, Local Predicted. On re-doing this I realised that we don't need the predicted ones at all, because we're handling the prediction ourselves. So now we're down to just regular and local.