I sense “diminishing returns” here. Be sure that there is a return-on-investment in the time you put into this.
First, do all the move-matching, perhaps using bayonet-sized objects that have no textures at all. Even if you do a little manual adjustment of the movement curves, get the match down close-enough so that the audience (never-mind “you,” you CG perfectionist … ) will not perceive objectionable shakiness. (As Zac said in A Chorus Line: “Don’t Draw My Eye!”)
Also: “cut the film together first.” Determine what shots are going to be in the final cut. Don’t spend (much) time on footage that will wind up on the cutting-room floor. Don’t spend time on “passing shots” or situations where the bayonets won’t the object of attention.
Once you’ve got that, and have made umpteen-zillion locked backup copies of it … … now’s the time to think about textures, which should be stored in a common asset library. Different shots may call for different textures. They should all come from a consistent set of “swatches.”
Be sure to substitute the real geometry (still untextured) for the stand-in objects in a few test shots, just to make sure.
The compositor is a perfectly fine way to attach textures to things although I don’t customarily do it. (I don’t use textures that add much to render-time.)
Pay attention to sources of light since the rendered bayonets (which should be in a layer or layer of “bayonets floating in empty space”) might … or, frankly, might not … need at least plausible lighting of the sun-direction.
If the bayonets are gonna be stuck into someone’s guts … ahem … as in at least a few shots I presume that they will be, stick 'em into oranges: spheres or what-have-you that are also on the bayonet render, but in a separate renderLayer that you can exclude. Those “oranges” might need to roughly track the squirming victim, but since shots like that are usually cut so tight, you can do that by hand without actual tracking of the (soon to be) corpse.