Having no insight of any kind .... suggestion for what could have happened here:
Marsch signed a 3 year deal at Leeds, 2 years ago. Rumoured to be worth £15M, ie £5M/ year.
With 2 years left to run, it's possible that he's in line for the remaining £10M. It's possible there's a clause that they don't have to pay if he gets another job.
It's understandable that Saints are unwilling to pay that off before committing to a new contract for him, and understandable that he wouldn't walk away from £10M for a 6 month deal worth (£2M?).