مشکل از دستور \sho
شما است که یک فاصله اضافی درج مینماید. با جایگزینی کد زیر مشکلتان رفع خواهد شد.
\newcommand{\sho}[1]{\refstepcounter{myco}%
\label{#1}\ref{#1}}
در واقع آن علامت %
در انتهای خط اول سبب میشود تا تک ادامه آن را در نظر نگیرد و در صورتی که این علامت نباشد یک فضای سفید در نظر میگیرد.

برای رفع مشکل دوم هم میتوانید اینها را در جعبههای هم اندازهای قرار دهید. البته اگر قرار است اعداد بیشتر از ۲ رقم شود شاید بهتر باشد که اندازه را بیشتر نمایید.
کد زیر را جایگزین تعریف قبلی نمایید. این کد جعبهای با عرض چهار میلیمتر تعریف نموده و متن را در آن وسطچین مینماید.
\newcommand{\cnum}[1]{\par
\setlength{\fboxsep}{.7mm}%
\fbox{\makebox[4mm][c]{\sho{#1}}}}
