I've found it most effective to use Zarya as artillery support with her alternate fire, which lobs an exploding ball of energy in an arc. Like Pharah's rockets, these explosions have small splash damage that quickly falls off the further away the enemy is from the explosion, so don't expect to deal more than 150~ damage withing a single reload if you're at 0 energy. Zarya's primary fire has very short range and unless you have good tracking, it won't deal much damage, so her secondary fire is better to use at a distance, and you want to stay at a distance until you've built up enough energy to kill enemies faster than they can kill you.
As you said, Zarya's gameplay revolves around her two shields. Both shields are identical except for cooldown (10 seconds for the self shield, 8 for the projected shield): they last a maximum of 2 seconds, they can absorb up to 200 damage, they protect from impairing effects like McCree's flashbang and Mei's freezing effect, and each individual shield can only charge Zarya's energy by 40 at most. It's also worth noting that if a shield is up, it will always fully absorb the hit that destroys it, even if the shield had less health than the absorbed hit. For example, a shield will always save yourself or an ally from D.Va's Self-Destruct, even though it deals 1000 damage.
The way Zarya should be played depends a lot on her current energy; while it's low, you don't have big changes of surviving a fight, since you won't be able to kill enemies before they can kill you. The basic idea is to attack from far away while your energy is low, using your secondary fire to safely damage the enemy while peeking around corners, and whenever your shield is up, you can run out in the open for 2 seconds and absorb energy from the enemies' attacks, which will make your grenades much stronger. Each point of energy translates to 1% extra damage from both primary and secondary fire, so you can see how much difference 80+ energy would make in Zarya's damage output. The secondary shield can be projected on your allies whenever they're being focused down, and it's a good idea to place one on a beefier tank than you like D.Va or Reinhardt while they're out in the open. Once your energy is high enough, around maybe 75+, you can afford to be aggressive and lead the charge, but keep in mind that your survivability still depends largely on having your self shield. Even on high energy, it's a good idea to attack mostly with your secondary fire unless in very close range, or against a large, slow tank that is hard to miss with your primary beam.
Zarya's ultimate is best used in conjunction with Barrage or Self-Destruct, but you can deal pretty good damage with a 100 energy alternate fire. Keep in mind that Graviton Surge does not prevent enemies from attacking and using abilities, so if you're not careful you might be quickly brought down before being able to pump out enough damage to be worth the ultimate.
Ultimately, Zarya works well with almost any allies, IMO, but she can't fulfill the role of primary tank, so you always want to pair with one. Low health heroes who still want to be fighting like Tracer and Reaper will benefit greatly from 200 extra health when they're caught out, heroes who can't fight on their own like Mercy and suitless D.Va will survive that bit longer when the enemy comes to flank them, big tanky heroes won't be helped by shields as much, but you'll love the instant 50 energy from the attention they draw, and finally, big AoE damage dealers or continuous damage dealers like Junkrat, Pharah, and Bastion, or high damage ultimates like Hanzo's, Genji's, and D.Va's work really well with Graviton Surge. Just make sure not to use it together with Winston's or Roadhog's, since they'll push enemies away from the black hole.
So for this, we tested using Zarya's self-damage on her secondary fire since we only had two people. Let's establish the expected behavior:
No armor.
That's 23 damage dealt to Zarya without armor.
Now, let's get to the meat of the question.
With armor, damage on shields.
This is also 23 damage dealt to Zarya's shields while she has armor from Torbjorn's armor pack. But let's give it one more trial.
With armor, damage on armor.
269 - 254 = 15 damage dealt to her armor. While this is a bit more than the expected 5 damage reduction, it's still reduced damage which means that self-damage is mitigated by armor.
Conclusion
This means that we can definitively state that, at least for now (6/30/2016), the damage reduction provided by armor does not apply to shields.
Best Answer
Hopping into a quickplay game (with custom settings) showed that on average, when firing at 0 charge, and then not increasing my charge - resulted in an average damage delt per ball of 24 (I got 24 3 times, and 23 once, so I probably goofed up that one shot).
Now firing a ball then taking damage to my barrier (to increase the damage a ball did), resulted in an average of 33 damage delt per ball (with 3 balls delivering 33 damage, and one dealing 32).
So, yes, the charge actually does change as the ball flies.