(untested) You could create a subshell for each child so they don't share the same parent environment:
for (( c=0; c<=$id-1; c++ ))
do
t8=$t
(
export t=$t8
export UnitIP=${IP[$c]}
export UnitPort=${Port[$c]}
export UnitName=${Name[$c]}
export UnitActive=${Active[$c]}
subsprogram.sh &
)
done