Process behavior different when spawned from single terminal

So this one just plain confuses me. I have a bunch of somewhat CPU intensive processes that all communicate using a shared memory region. Some of these programs are threaded and some also change the scheduling to FIFO or round robin. The good news is that everything works as long as I spawn every process from a different terminal (on ubuntuso think it is gnome terminal). This is cumbersome though so i wrote a script to spawn all of these different processes from one perl program (also tried sh). But the processes, even if called the same way) seem to hang. It appear to be a priority thing but nicing doesn't help. Not sure what else in scheduling should matter. Any ideas why proceses spawned from different terminals are ok but processes spawned from a single terminal are not.

Do they have to run from a GUI environment, have you tried to run them from an ssh/telnet session?

Can you try stracing them to see what they're doing?

Not sure what running from a ssh session would do. Does that change scheduling / priority? One of my processes is a GUI so would prefer not to (although it can't hurt to try with x forwarding)

Strace sounds like a good idea though. Will do next time I get a chance