I looked at the iApp, and the whitepaper describing how the solution works, and then implemented it by hand myself. (I find it better to understand how it all hangs together because when it doesn't work, there's not a lot of logging happening to tell you WHY).
I also use direct to XMLBroker communications rather than utilising a web interface server. Although we have found a few funnies with the (Old & unsupported) version of Citrix in use at some sites
When you go direct to XMLBroker, the APM doesn't patch the .ica file. It actually generates one. Most of the smarts is actually done in javascript on the browser itself. The XML response that comes back from starting an app is passed BACK to APM from the browser, and the APM then generates and returns an ICA file. You can over-ride whatever you like in that generated ICA file.
One thing I have noticed is when a client is behind a proxy that the ProxyType=Auto seems to be ignored by the Citrix Reciever... Not sure why yet, but that's the only real issue I have at the moment.
Note that you really want to be at least 11.2.1HF6 as well. There's a few annoying bugs fixed around order of loading icons etc. I'm hoping for some optimisation in the realm of icon loading in the future too (Currently the javascript loads the icons one at a time rather than grabbing ALL the icons at once. That puts a lot of load on the XMLBrokers as being POST methods you can't really cache them).
Apart from that it's quite solid. I could wish for better logging, but at least you can raise your own events in the VPE and logs from there.
H