Don't know if this was discused in an earlier reply, Seeing its acting the same with another dist. it could be the MSD box or a slipped balancer, If the points act'd the same "timing wise" i'd suspect the Balancer, Did you ever fined TDC to make sure the balancer lines up at 0 on the tab?
You say it runs nice at 45 BTDC, but runs poorly at 15-20*, I hope you mean at idle on that 15-20 & not max advance, because it will not run good there, have you tried 35-36* max from the 45*??