Thanks everyone for the suggestions. I thought I'd post an update in case it's useful to anyone else.

I've now purchased BIAB (Mac version) and have managed to get part of the workflow working.

The key discovery was that BIAB can import song definitions from text via:

Edit > Paste Special > Paste from Clipboard Text to Song(s)

Using Python, I can now:

1. Read a CSV containing chord progressions.
2. Randomly sample progressions.
3. Randomly assign a BIAB style and tempo.
4. Generate BIAB song text in the required format.
5. Combine many songs into a single text block.

For example, Python produces entries of the form:

[Song]
[Title ...]
[Key ...]
[Tempo ...]
[.Sty ...]
[Chords]
...
[ChordsEnd]
[SongEnd]

BIAB successfully recognises multiple songs from the clipboard text. I tested this with 10 songs at once.

From there I can choose:

Save as SGU Song > All Songs in Clipboard

and BIAB automatically creates a folder of SGU files.

I also found:

File > Save Special > Batch Save All Songs as M4A or AIFF Audio [in Current Folder]

which successfully rendered the resulting SGUs to audio files.

So while this isn't a fully automated solution (there is still a manual paste/import step), it does seem possible to go from:

CSV > Python > BIAB song text > multiple SGUs > batch-rendered audio

without entering chords or selecting styles manually on a song-by-song basis.

One other observation: although the batch render option refers to both M4A and AIFF, on my system it appears to produce AIFF files regardless of the option selected. This isn't a major issue, however, as it is straightforward to batch-convert the resulting AIFF files to MP3 using a short Python script (via ffmpeg), and then automatically delete the AIFF originals.

Many thanks to everyone who replied. The suggestions about pywinauto, AutoHotKey and the BIAB VST are useful avenues to investigate, and a separate email suggestion about using BIAB's text import/export functionality ultimately pointed me towards the approach above.

I haven't yet explored whether the remaining manual steps can be automated, but for my purposes this is already a substantial improvement over creating hundreds of songs individually.