Proviamo una diversa disposizione.

Inserisci questo codice HTML alla fine del body:
codice HTML:
<audio loop id="bgsound"><source src="audio/audio.mp3" type="audio/mpeg"></audio>
Sostituisci la parte jQuery con questo script:
codice:
      var bgsound = $("#bgsound");                        // oggetto audio
      bgsound.run = function(run){                        // funzione per eseguire play/pause sull'audio
        run&&this[0].play();                              // se run=true, eseguo l'audio
        this.stop().animate({volume: run?1:0}             // eseguo una dissolvenza del volume
          , 1500                                          // millisecondi per la dissolvenza
          , function(){!run&&this.pause();}               // al termine della dissolvenza, se run=false, fermo l'audio
        );
      }
      bgsound.run(gallery.isSlideshowRunning);            // eseguo subito l'audio se lo slideshow è impostato con autoStart=true
      gallery.default_play = gallery.play;                // creo una copia della funzione play dello slideshow
      gallery.default_pause = gallery.pause;              // creo una copia della funzione pause dello slideshow
      gallery.play = function(){gallery.default_play();bgsound.run(true)};    // aggiungo la funzione per eseguire l'audio sul play dello slideshow
      gallery.pause = function(){gallery.default_pause();bgsound.run(false)}; // aggiungo la funzione per fermare l'audio sulla pausa dello slideshow
Per la cronaca, rispetto all'altro metodo, ho inserito il tag direttamente come html anziché crearlo al volo attraverso jQuery. Inoltre ho utilizzato il tag <source> con i relativi attributi (anziché il solo tag <audio>).

Da quanto ho provato, personalmente entrambi i metodi mi funzionano allo stesso modo e su tutti i browser su cui ho testato (FF, CH, IE9), ma non riscontrando l'errore non ho idea se in questo modo ci sia qualche differenza su qualche altra versione di IE.

Fammi sapere.