I ended up switching to Octave for this project. Octave can be run without installation. The zip download is about 400 MB which needs to be unzipped to run. Inside is a octave.bat file which can be modified to run code on startup (by default it just start a prompt, either GUI or CLI).
The conversion process took somewhere between 8 - 16 hours with most of the time spent on 1) writing code that generates code for generating figures (a modification/cleanup of fig2m on the file exchange, no openfig in Octave) 2) code that writes tabular looking data to a listbox (no uitable in Octave) and 3) handling differences in xlsread functionality between Matlab and Octave. There were a lot of other small changes I needed to make the code but those were the big changes. In the end I was fortunate that there was enough supported with classes and packages that I was able to port my code without too much of a hassle.
It is possible to compile a program in Octave but I found it difficult to extract the necessary files (there is no neat packaging service available).