When outlook generates a signed email it adds an alternate view with the signed message, another alternate view with the html version and then another alternate view with a plain text version. I think if you also do this then it will work in most all email clients.
there is a plain text alternate view that is not signed Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit
there is an html version that is not signed Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable
There is a signed alternate view Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s"