I have the same problem as you and is inspired by ThePosey's answer.
You can find the autocmd command on line 1678 in taglist.vim, which looks like
autocmd BufEnter * call s:Tlist_Refresh()
which expects the BufEnter event to refresh the tag window.
I just changed it to
autocmd BufEnter,CursorMovedI * call s:Tlist_Refresh()
and it will switch Tlist_Refresh while your cursor moves in insert mode. I removed the CursorMoved event for it, making too many other commands difficult.
I think this should meet the requirements for most cases. A side effect is some commands that require moving the cursor.
Edit:
An easier way to put this line in a .vimrc file is:
autocmd CursorMovedI * silent! TlistHighlightTag
And BTW, there is no TlistRefresh command, use the TlistHighlightTag instead.
Tom yu
source share