One silly idea is to use:
It is silly because it will give wrong answers if more than 1 significant digit is shown (but maybe this doesn't happen in your usage?). You could instead come up with a more complicated function to format the numbers.
The following answer is not helpful. Only real numbers get scientific formatting, so preventing numericization will also prevent scientific formatting. However, it may be useful for other situations where unneeded numericization occurs.
However, it is possible that the real issue is the tick generation code is mistakenly numericizing the labels. If that is the issue here, than you can prevent it by using a wrapper. For example:
NHoldForm /: MakeBoxes[NHoldForm[e_], f_] := MakeBoxes[e, f]
Then try using the following:
TickLabelFunction -> (MaTeX[NHoldForm @ ScientificForm[#]] &)
I don't use those packages, so this is just a guess.