Your patch example looks correct. Don't put the arp into a polyvoice subpatch. It should live on top-level and distribute it's gate and pitch from there. Actually I can't imagine if it would work and what I will do inside a poly subpatch.
Yes, that's exactly how you would do it. The inlets are green to visualize, that only integer values are recognized. If you put a f to the green inlet an input like 3.125 would be interpreted as 3.
I think, you'll have to experiment to find a solution. I would consider using one of the midi thru objects from the community library (e.g. tb/midi/utils/midithru, sss/midi/THRU) and extend them with an "enabled" switch or inlet. Then you could toggle between arp or through.
Hope that helps,