Edit: I was wrong ;)
cmd.exe does accept UTF-8 but you need to be sure to save it without the BOM at the beginning of the file.
Here is a second test. You can use chcp 65001 at the beginning of your batch-file.

A batch file can not be of type UTF-8. It needs to be ASCII. Cmd.exe just doesn't accept another format. I did a small test and you can use your characters but it needs some work.
Make a file test.bat with echo Å Ä Ö. Save it with format ANSI/ASCII. Open a cmd.exe and make sure your cmd.exe uses Lucida Console (to display the Unicode characters).
When you type the file it will show characters as the old DOS-characters. You can see a translation chart here.
When you switch to a "Windows Ansi"-code page (i.e. West European Latin) with chcp 1252 the characters are displayed correctly. If they also get transferred to their respective utilities depends on that utility.
But why are you creating a batch-file for this? Can't you just code it in VB.net?

Edit 2#:
This is how you set Lucida Console in cmd.exe:

The BOM are 3 characters at the beginning of a UTF-8 file. (\xEF\xBB\xBF).
In VB.net you would create a file without a BOM like this:
Dim utf8WithoutBom As New System.Text.UTF8Encoding(False)
'^^^^^'
Using sink As New StreamWriter("Foobar.txt", False, utf8WithoutBom)
sink.WriteLine("...")
End Using