As title. If a soldier has a bonus ability which doesn't fit (eg I got Lightning Reflexes on a sniper... I think he's never been shot at in 20 missions), can I retrain him so as to get a chance at a different bonus?
No, the cross class perk is determined when you first obtain the character. Retraining will not change the skill.
Related to this: while you can't change the perk (as z' noted), there is a mod that lets you choose which perk you get.
Currently it's only available on the Steam Workshop, not at Nexusmods.