The SNP would regain most of the seats it lost to Labour in July if another Westminster election was held, a key polling analysis has revealed.