I have since figured out how to do this myself and written my own program to achieve my aims for the RX-8 (which was to enable cruise control), which also happens to work on some (but not all) similar age Mazdas.
However, I have detailed all my findings on the protocol etc in this thread so that support could be added to FORScan or used by others in the future. You probably want to ignore the first few replies and start reading from when I renamed the thread here: http://forscan.org/forum/viewtopic.php? ... 244#p10245

The post explaining the layout of the data / VIN block is on the 2nd page here: http://forscan.org/forum/viewtopic.php? ... =10#p16553
And finally, I released a slightly more generic as-built data modifier program that can change any aspect of the ABD (rather than just the cruise control) of the RX-8, or cars with the same VIN block layout as per the above post, here: https://forscan.org/forum/viewtopic.php ... =60#p20345
-------------------------------
Hi,
Been trying out this wonderful program with my 2005 Mazda RX-8, which I am fairly sure has some modules on MS-CAN. It seems to work very nicely with the modules it detects on HS-CAN for DTCs etc

I am using a USB china clone ELM327 v1.4 with the HS/MS CAN switch mod, and have selected the "HS/MS switch" option in Settings->Connection->MS-CAN support.
If it makes a difference, what I am trying to do is modify my as-built data to enable cruise control, having installed all the necessary hardware (literally just the steering controls). I know this is possible because it has been done before, by one person, but he got a Mazda dealer to do the module programming part. Specifically, I want to write as-built data to the module at address 0x58 (58-09 block in the as-built data), I do not know which module this is but I know it exists as it is in the as-built data. Having compared lots of as-built data for different models/options of this car, I have worked out what I am 90% sure is the bit that enables cruise. However, I cannot find a module in the list FORScan presents under module programming to write to this address. This leads me to believe it is probably one of the modules on MS-CAN that's not showing up?
Alternatively, is there any way to just write as-built data to an address I specify, rather than having to choose the module it belongs to first? I am reasonably confident in what I am doing, I am an embedded software engineer by trade and though I am not particularly familiar with CAN, I work extensively with microprocessors and communications protocols and designing systems based around them

Many thanks,
Jamie