Sure you need to name your officers if you do not want all the groups sharing info...
But, you don't need to write the stuff in each leaders init, use the forEach stuff in the missions init.sqs:
{[_x, west_units, east_units] exec "infoShare.sqs"} foreach [officer1,officer2,officer3,etc...]
And, always remember that the thislist produces an array so if you exec the script with
[unit,[east_units],[west_units]] exec ""
the script can't comprehend it as you now execute the script like this:
[unit,[[eastunit1,eastunit2,eastunit3,ect...]],[[westunit1,westunit2,westunit3,etc...]]] exec ""
when it is supposed to be executed like this:
[unit,[eastunit1,eastunit2,eastubi3,etc...],[westunit1,westunit2,westunit3,etc...] ] exec ""
So, use the exact syntax in executing the script according to the script 'manual':
[unit,east_units,west_units] exec ""
I have used this script since it came out and never had any probs...
Oh, and the script exits if the unit passed is not the leader of the group...