I am not an experienced user, but will soon be one as I have just ordered a keyway broach and bushing for one particular size. It is a bit confusing and definitive information is hard to come by. One thing is clear, the A, B, C, etc. designation of the broach and the bushing must match or it will not work properly.
What I have discovered is that the width of the key a broach will cut and the width of the broach itself are not necessairly the same. The part of the broach that rides in the bushing can be wider. This can have several advantages and I am not sure which of these is the real reason for this idea. The first one that comes to me is that a wider body on the broach would make it harder to break. It is also possible that a single bushing of a given diameter could be used for several different sizes of keyways, thereby saving some money by reducing the number of bushings needed.
As for the stroke needed, different broaches will need different strokes. Some suppliers list these dimensions better than others. There is a pilot area at the start end and another area at the large end so the stroke is somewhat less than the overall length. Some listings do give the length of the cutting area, but I would think you would need a bit more than this on your press. But I don't know exactly how much. There are some extended height arbor presses and the floor presses have a lot of adjustment range. If the stroke of the cylinder is limited, you could use spacers to extend it in a larger press.
I hope someone can further clarify this with some specifics and recomendations from experience. I should have some limited experience in a few weeks or so.
As far as buying them, you may want to look at MSC. I found they presently have some good prices and they seem to have a "special of the day" thing going on presently. I just got about 30% off and free shipping on my order.
Also do an internet search on "broach". I got some good hits but didn't have time to read all of them.
Make it fit.
You can't win and there is a penalty for trying!