I think the problem could be for the WM_CLASS(STRING) in the gnome-terminal's window properties
If you have two desktop files with different icons but running gnome-terminals... you can check the WM_CLASS with the command xprop
Then click in the windows (with the cross cursor)... and the result for your applications should be:
WM_CLASS(STRING) = "gnome-terminal", "Gnome-terminal"
In my opinion, due to the windows have the same WM_CLASS they will be grouped together in the Unity Launcher.
Set Class & Name in Gnome-Terminal
To avoid this issue you can try to set a different WM_CLASS string for each desktop file.
The command should be:
gnome-terminal --disable-factory --class <appname> --name <appname>
Here you have an example to run gnome-terminal & execute a little script.
gnome-terminal --disable-factory --class term-red --name term-red --title Term-Red --window-with-profile=red -e '/home/virtual/Desktop/test1.sh'
Example with 2 desktop files.
I created 2 desktop files that will run scripts (using gnome-terminal), and the gnome-terminal desktop icon locked to the Unity Launcher.
When I click in the 3 desktop files they are not grouped under the same icon.
As you can see 3 Terminals are running (with their own icon).
Here you have the content of the term-red.desktop.
The important keys to add in your .desktop files would be:
Exec=gnome-terminal --disable-factory --class term-red --name term-red --title Term-Red --window-with-profile=red -e '/home/virtual/Desktop/test1.sh'
Here you have information about Desktop Entry Specification.
Another option would be to run xterm instead gnome-terminal.
xterm will accept the option class & name.
Exec=uxterm -class term-red -name term-red -T Term-Red -e '/home/virtual/Desktop/test1.sh'
NOTE: Please change these examples according to your neeeds.
Hope it helps.