Well you got the bulk of it done. I rearranged it some, and put a comment next to a few things you left out. Try the following:
(princ "\nType MSCALE to start "

;;prompt user
(DEFUN C:mscale ()
(setq EntMatch (entsel "\nSelect block to match: "

)
(redraw (car EntMatch) 3);;highlight selection
(setq Xscale (cdr (assoc 41 (entget (car EntMatch)))))
(setq yscale (cdr (assoc 42 (entget (car EntMatch)))))
(setq zscale (cdr (assoc 43 (entget (car EntMatch)))))
(setq Count 0);;counter for set items starts at 0
(setq BlockSet (ssget '((0 . "INSERT"

)))
(repeat (sslength BlockSet)
(setq Ename (ssname BlockSet Count))
(setq Edata (entget Ename));;orig insert data
(setq Oldx (assoc 41 Edata))
(setq Oldy (assoc 42 Edata))
(setq Oldz (assoc 43 Edata))
(setq Newdata (subst (cons 41 Xscale) Oldx Edata))
(setq Newdata (subst (cons 42 yscale) Oldy Newdata))
(setq Newdata (subst (cons 43 zscale) Oldz Newdata))
(entmod Newdata);;corrected spelling

(entupd Ename)
(setq Count (1+ Count));;increment counter
);end repeat
(redraw);;redraws the viewport
);end defun