Seeing the comments above suggests that the problem was indentified to be caused by MSIE.
I'm adding an answer here in case somebody else hits similar problem and needs to debug the issue. The important parts of your question:
Output file generated successfully without XML declaration.
Okay, so you have a file that has correct bytes in it.
Now when I manually copy that file to another location [...]
I'm assuming you know how to copy a file so you will have exactly the same bytes in in the copy.
[...] and open it below xml tag is getting added at the top of the file.
This sounds really weird unless the software that you use to open the file has major brain damage. Just opening a file should never ever modify it.
However, some software is known to have major brain damage. Well known examples include Microsoft Word, Microsoft Visio and Microsoft Internet Explorer. (I'm noticing a common vendor here ;)
To be exact, MSIE probably does not modify the actual file on disk (unlike Word and Visio) but just display something else but the actual contents of the XML file.
omit-xml-declaration="yes"works as advertised. If it's not working, the implementation of your XSLT processor must be incomplete. For example, the implementation of the FireFox XSLT 1.0 processor lacks the implementation ofdisable-output-escaping. If the implementation is not there, your only solution would be to use another XSLT processor. - zx485