1) if you want that certain routes must not change (i.e., the sequence of activities in those routes do not change, no new jobs are added to those routes, no jobs in those routes are removed, etc.), then you'd better not add those routes and associated jobs to the new vrp at all.
2) if you want that, for certain routes, the sequence of existing activities must not change and no jobs in those routes can be removed, but new jobs can be added (at any position in those routes), then you'd better use initial routes.
3) if you want that, for certain routes, the existing jobs should not be removed, but new jobs can be added and the sequence of existing activities can change, then you use hard route constraints to control the job-route relationship.
4) when you use such hard route constraints, for example, like the one you implemented, job X should not be assigned to route of vehicle Y, besides what you have there (if new vehicle is Y and if new job is X, then return false), you should also check whether the current route contains job X, i.e., if new vehicle is Y and if the current route contains job X, then return false, just like the example in the walkthrough of constraints.
Hopefully this helps.