It sure does sound like the signal is getting sent to
the entire process group (for whatever strange reason).
If you just need a work around and the children don't
need to be in the same process group, just have the
child move itself into a new process group with
for setpgid or setsid (a man page on your
system is probably a better description though).
They are not very portable, but I think all of them are
implemented on Solaris.