Scott,
As long as you know that you visiting the local locations from a pre-defined shop then the route sequence is always known, that is:
Shop1, Home1, Shop1,Routename1
Shop1, Home2, Shop1,Routename2
Shop2, Home3, Shop2,Routename3
etc
or simpler (assuming travel time is same from work and back to work), the data will look like:
Shop1, Home1,Routename1
Shop1, Home2,Routename2
Shop2, Home3,Routename3
So VRP is not the way to solve this. it is the Route solver as there is no optimization of the sequence of the visits from Shop1.
The route solver Stops sub-class is loaded with right-click Load Locations or the GP tool Add Locations. It can be run multiple times.
So the input locations can come from more than one file. As long as the routename is same for a pair (or three) of stops, they will paired up by the route solver. Yes, you will be loading 70,806 records. But they will make 35403 unique pairs.
So the above file can be loaded twice, first with the "shop" address and routename field and then again with "home" address and routename fields. Loading into an existing stops layer with records does not over-write, rather adds on to what's there.
So your work is in pre-processing your inputs so that they can loaded into the stops layer.
I hope the above makes sense.
Jay Sandhu