It's possible to run a .BAT but that's really to do things like set up a java classpath and launch a java application. Not to make additional changes to the machine.
There are several issues with your design.
1) The UI sequence shouldn't run with elevated permissions so the .BAT won't have rights to do the things you want to do
2) The changes are being made outside of the installation transaction so there's no support for rollback or uninstall
3) The changes are being made by a script that has no support for logging or error handling. It'll be fragile.
4) Because the changes aren't expressed in Windows Intaller tables you loose the expressiveness and transformability that MSI provides.
The .BAT should be refactored and likely eliminated. The "how do I xyz?" questions for each thing it does (install a font, modify a file...) should each be their own StackOverflow question.