Hello Neil,
Sorry for the delay - I seem to be somewhat busy just at the moment. I think you have overlooked the [miditranspose] directive:
"The [miditranspose] directive can be used to change the playing
transposition of a stave, which is initially set from the miditranspose
header directive. The value given in [miditranspose] is added to the
current playing transposition for the stave at the point it is encountered. One
use of this is to arrange for '8va' passages to be played at the correct
pitch. Changes made by [miditranspose] do not persist beyond the end of the
movement."