@GrahamS, I formatted your code to properly appear in your post (have a look over here to see how this is done). Can you include you setup() and loop() code so we can see how your configure the pins. The pinSetFast/pinResetFast() functions rely on pinMode() being correctly setup prior to their use. Using delayMicroseconds() should not cause any problems. Having the rest of your code would help.
On the pre-write question, using the fast pin commands bypasses all regular pinmode checks so it should allow you to preset the pin prior to a pinMode(). However, I don’t believe this has been tested. I will gladly change the docs if you find that this works.