Sorry it was more of an oversight than a problem anyway
I just wanted to send a program change and realised there are three messages needed to do this.
(0, 11*16 +channel,0,0) -CC- bank select (don't change this)
(0, 11*16 +channel,32,bank) -CC- bank select fine - last param selects bank
(0, 12*16 +channel,prg,0) -- Program (patch) change
That was it, I was only sending one message so hope that helps someone.
Sorry for the mystery