Hi:
YYMON7. format should give you 2009MAY as the formatted display of the date value, NOT May-09. And the MONYY7. format would display as: JAN2009, not May-09. So that's confusing.
However, aside from format confusion, you are correct that if you do anything to add to or alter the HTML output, as sent from SAS, then Excel uses its default internal formats for any data you type into the worksheet.
The behavior you note when you save as HTML (the whole folder of HTML output) is the default HTML save behavior that Excel uses. If you want a SINGLE web page, then choose the MHTM or MHTML format when saving. When you save to binary .XLS format or as the new .XLSX format, then you are forcing Excel to convert from the HTML file created by SAS and ODS to a "true" Excel format for the file.
You might try using the HTMLSTYLE attribute to send a Microsoft format for the date from SAS to Excel -- but the issue may still remain when you change or copy or alter the HTML file -- that Excel uses the default format for any "new" cells. This would be a question for Tech Support.
Alternately, if you have Office 2003, you might want to investigate the use of ODS TAGSETS.EXCELXP to create Spreadsheet Markup Language XML files that Excel can open and render. This web site shows how to use the TAGATTR attribute to send a Microsoft format from SAS to Excel:
http://support.sas.com/rnd/base/ods/odsmarkup/excelxp_demo.html
cynthia