First of all, in jsprit, initial solution and initial route are two different things and apparently you are referring to the latter.
One thing you need to note about the initial route is that it imposes the sequence of the activities as you define them. For example, if you define the initial route as follows, the sequence of (1) the pickup of shipment 1, (2) the pickup of shipment 2, (3) the delivery of shipment 2, and (4) the delivery of shipment 1 will not change in the solution. This is because the jobs in the initial routes will not be ruined in the solving process.
Now back to your question about reading initial shipments.
1) The method initialShipmentIds returns an ArrayList of ids of all the jobs in the vrp builder. If the vrp builder contains not only shipments and you want it to return ids of only shipments, you will need to add an if clause like if (j instanceof Shipment) in the for loop.
2) What do you do with the returned ArrayList shipmentIds? Before knowing this, it would be difficult to understand why you only get the most recent shipment.