When you add a lead through API or Zapier, or when you move them from one campaign to another, their variable data is indeed getting moved and stored. The problem is that the campaign does not know how to map those variables correctly and so it doesn’t show them in the leads table.
The current fix is to import 1 lead (can be real or dummy that can be later deleted) through the CSV method and map the variables as you want them to. At that point, the variable will start showing up again.
We are also working on a new update that will not require this manual extra step.