I can't speackspeak exactly to the specific issue you are having, but I can say I am prettyfairly certain you can add multiple of the same type of component to one GameObject. The best way I have found to do this is to access them is by using the "GetComponents" method call. Something like this should do:
AudioSource[] allMyAudioSources = GetComponents<AudioSource>();
This will return an array of AudioSources, which you can then assign to different variablevariables and access independently without freaking things out. Something like thatthis in C#:
AudioSource thrusterSource;
AudioSource guardSource;
void Start() {
AudioSource[] allMyAudioSources = GetComponents<AudioSource>();
thrusterSource = allMyAudioSources[0];
guardSource = allMyAudioSources[1];
}
// These should no longer bug each other out!
guardSource.Play();
thrusterSource.Play();
EDIT: I thought it would be worth noting if it's not obvious, I have found the Components will populate the array in sequence from top to bottom. So it will help to keep that in mind when assigning those sound files.