Not sure if this will be helpful, but I had a similar project where I was trying to animate a crowd of simple stick figures, but wanted them to be in different parts of their walk cycle so they didn't look like they were marching.
In my case, rather than rigging, I used shapekeys to animate the characters, used particles to instance the objects (as you're doing,) then had animation nodes cycle through the shapekey animation based on the overall animation frame #, but assign a unique offset value for each character's animation so they wouldn't be in lockstep.
Using shapekeys like this worked for my simple animation, not sure if it would work for your situation. Sample attached.