An update:
I ended up building a simulation in FreeCAD using the Assembly3 workbench, and a Python program to display the results graphically (thanks to Duncan Webster for sending me some information on valve gear design), and ran many, many test of different configurations of the Firth gear.
I found that it was possible to get a pretty much perfect distribution for both ends of the piston stroke, and forward and backward directions. Unfortunately, this could only be obtained by (considerably) lengthening the rocker arms so that, effectively, the distortion that this introduces counteracts the intrinsic distortion from other parts of the valve gear, but with the undesirable effect of imparting excessive side thrust to the valve spindles.
I decided to splash out on getting copies of the works drawings from MERL. There aren’t very many for the Z7S, but there is an arrangement drawing for the motion gear (drawing no. 57361), and although it isn’t dimensioned, printed full size on A0 paper it’s possible to measure dimensions from it accurately enough (especially given the fact that it’s going to end up scaled to 1/12th).
I found it was very different from the John Haining drawings – I guess that he had to do considerable alteration to get it to work with slide valves. I’m going to go with the original piston valves, which may be challenging at this scale, but what the hell, the whole thing’s going to be challenging.
The valve event plots look pretty reasonable – good enough to be getting on with designing the rest of the engine, though there could be room for some tweaking later (annoyingly FreeCAD proved very cranky doing this, and now refuses to get the previous simulations to work – there is a new assembly module in version 1.x and I’ll try re-building everything in that to re-test).
At the Tinker’s Park steam rally last year, I asked the owner of a BB1 if he knew anything about complications with the Firth gear – he said he’d never heard such, and pointed out that at the speeds these engines worked valve event perfection may not have been that important.
It works in Onshape anyway:
https://vimeo.com/1064855329