The issue seems to be resolved (I'll know in a few days time if it is a reliable solution).
Here's what I did:
1. Started both tasks that run in the high priority timed loop before the timed loop and ended these tasks after the loop.
2. Built the application using Labview 8.6 (which is the same version which I was using to develop the vi). Previously I had been using Labview 2012 to build the application.
If I get some time in future or if similar problems occur I'll redesign the vi so that it correctly uses the producer-consumer architecture. But for now, because it seems to be working, I'll let the application do its job.
Thanks Blokk and BCL@Servodan for your help.