Thanks for your bug report. I have not been able to reproduce your first issue yet. After I am invited to a channel, I type "/join -i" and mIRC joins the channel.
I have tried this event in my remote scripts:
on *:invite:#:/join -i
That is because the -i switch was designed to be used manually, in other words, for a user to type "/join -i" in a window after the event. The on INVITE event already provides the standard parameters you need, eg. "/join $chan". The way "/join -i" works could be changed to work in that event, although technically that was not its purpose.