Be aware that the traditional pinout for the ICSP(not JTAG) header is reversed from what you have - MCLR should be pin *1*. Your order is correct, but reversed from what a programmer would expect. Not a big deal, but something to be aware of.
There should be a pullup resistor(usually 10K) from MCLR to Vdd. The MCLR is the reset line for the PIC, and is active *low*. If that line is left floating, you will have very erratic behavior.
You will also need a VCAP capacitor. You might check the datasheet, but I don't think this is optional for this series. It would also be a very good idea to have decoupling caps on all your Vdd lines on the PIC. Looking at your schematic, it looks like that's basically what C1-C6 are. On the PCB, though, you'd want these caps as close to the PIC as is reasonable.
Not sure about executing code off external flash - I've never used that feature. Are you going that route because of the size of your code?