Your design flow sounds perfect.
One thing that can cause issues. Are you using the ZYBO board definition files in Vivado 2015.1? The board files for 2014.4 are not compatible with 2015.1. We need to post the new ones on the wiki.
You can use the hi-speed pmod headers or the low-speed pmod header for any connection through the PL. I just wanted to mention that the hi-speed headers do not have protection resistors and can be damaged by shorting them.
The PS PMOD header is for IO coming from the PS that can be configured in the Zynq chip, The PS PMOD header is labeled as "JF". Things you could do with the PS PMOD header, output UART0 to the pins on the header, SPI, I2C, etc. If your custom peripheral communicates over a standard communication protocol then it should be able to be used with the PS PMOD header but if it is a non-standard communication protocol then you are better off running the peripheral through the PL.
Best of Luck!
That tutorial uses both of the "Hard" ARM processors in the ZYNQ chip. Using the Zynq ARM core is very similar to using a Microblaze core, just instead of adding a Microblaze IP block to your design, you add a "7 Series Processing System" block. Using a microblaze core in a Zynq part is not a very common application, and we do not have any Zynq demos that do that.
There is a brief overview of the ZYNQ architecture in the second section of the ZYBO reference manual, available here: http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,1198&Prod=ZYBO.