Assigning ports of an n bit multiplexer
The first error


  Unknown identifier "i".


gives a very good clue as to the issue. i isn't defined.

There isn't a need to "index" the array, which is what I assume you're trying to do, since both types are the same:

mux_in:     in signal_array;
...
signal interconnect : signal_array;


All you need to do is this:

mux_in  =&gt; interconnect,


And that would deal with #1, as far as I can see. I don't know if #2 and #3 are additional issues, sometimes multiple errors are caused by one problem.

If this still doesn't fix #2 and #3, post the rest of the code (the mux and package), and I'll recreate the issue on my side and poke around a bit further :)