Opening the Arsenal interface seems to "create" a new backpack based on the class of the existing one and fill it with items from the existing backpack, but it assumes the new backpack is empty, which is not always the case.
For example config-defined soldiers with backpacks actually define a completely new backpack with non-empty Transport* subclasses. Trying to modify such soldier(s) in Arsenal duplicates backpack contents (if they fit).
The Arsenal needs to clear the backpack before adding items to it.