Got stuck at the fact I don't know how to tell each instance to use which devices in the config file or file parameters.
When you run bfgminer dont you pass it information about the devices to use? like:
bfgminer.exe -o http://stratum.bitcoin.cz:3333
-u username -p password --icarus-options 115200:1:1 --icarus-timing 3.0=100 -S //./COM4
You can then save this as a desktop shortcut or some kind of .bat to autorun on boot. Then create a duplicate of this specifying different com ports for each of your devices and different worker details.
There is probably a better way to specify this in a config file but I have forgotten how. I'm sure someone else with clearer instructions will come along.
this is more or less exactly what i did when trying to compare different payout methods. you can run multiple instances of cgminer and mining_proxy.exe from the same directory and just have a couple of batch files on your desktop, or in the directory itself with shortcuts on the desktop with the different settings you require.
mining_proxy --host pool-host --port pool-port --stratum-host 192.168.0.1 --stratum-port 6161 --getwork-host 192.168.0.1 --getwork-port 6162 --no-midstate
mining_proxy --host pool-host --port pool-port --stratum-host 192.168.0.1 --stratum-port 6163 --getwork-host 192.168.0.1 --getwork-port 6164 --no-midstate
cgminer-nogpu.exe --icarus-options 115200:1:1 --icarus-timing 3.0=100 -S //./COM13 -S //./COM16 --url 192.168.0.1:6161 --userpass user.worker:password
cgminer-nogpu.exe --icarus-options 115200:1:1 --icarus-timing 3.0=100 -S //./COM17 -S //./COM22 --url 192.168.0.1:6163 --userpass user.worker:password
of course, substitute your own ports/ip's/comms/usernames/passwords where required.
these are copied from my own batch files which use cgminer 3.1.1 and i DID read somewhere that later versions require you to drop the "//./" from the comm port settings or you will run into problems and start pulling more hair out.
from my experience using getwork even on the local network yields about 5% less return (interested to know other peoples results regarding this) so unless you have a reason tto use getwork or problems using stratum, i recommend using stratum from the pool all the way through to the client.
if you use the latter method, you can still edit the batch files directly from the desktop shortcuts with a right-click -> edit. to edit the shortcut itself you need to right-click -> properties.