It may be that there is library assembly unnecessarily embedded in your template. To check for embedded libraries, open the Designer and go to the References tab in the bottom pane of the default (.NET) script editor. Look at the Embedded column for each reference. If the entry in the column reads "Yes" for any of the references, then the code for that library will be bundled with the form template code. This option is useful for custom libraries, but standard libraries are already present on client devices and can be quite large — for example, the System.Windows.Forms library. To remedy unnecessary embedding, first remove the embedded assemblies (right-click > Delete Reference), then re-add them (right-click > Add Reference), selecting the option that reads "Do not embed assemblies in form".
If your form has no embedded assemblies and is still too large, consider decreasing the sizes of the embedded attachments, background images, and sub-forms.
Lastly, consider disabling audit trails. Audit trails track every value a field has ever been set to, and over time, these trails can add up, especially for forms with a large number of fields. To disable audit trails, set the keepAuditTrails property of your fields to false in the default (.NET) script editor.
View an example of a solution to this problem here.