A. one datablock per vehicle intended to be used, ie if there are 5 planes in the map, make 5 different datablocks, one for each
This would be a pretty poor method, as you can't reliably create datablocks as you need them, and cannot remove them. You would have to assume 20 and script it to use 20.
B. swap the vehicle to a different datablock that has the altered values, then swap back to the normal one when done
On the other hand, this is a good option so long as there's few adjustments that have to be made. If it's just two different values, then it's only two different datablocks. Which would be great, so long as that assumption is true. Even if not, even if it needs 40 different combinations of values, it's still better than the other one because you don't forget with the prediction by constantly transmitting datablock data.