Here is one way to approach the problem: convert it into a Lattice problem (where we have good tools)
That is, consider a two dimension lattice over $\mathbb{Z}$, with the basis vectors $(1, a)$ and $(0, m)$. It is easy to verify that $(x, y)$ is a solution to $ax \equiv y \pmod m$ if and only if $(x, y) = c(1, a) + d(0, m)$ for integers $c, d$, that is, it is a point on the lattice. And so, the restated problem is "what lattice points are in the rectangle $[x_{low}, y_{low}], [x_{high}, y_{high}]$"
Now, this basis is a bad basis; however we have an algorithm LLL which can take that bad basis and turn it into a much better basis $(u, v), (w, z)$. In particular, these two basis vectors can't be closer that $60^\circ$ or greater than $120^\circ$ (otherwise LLL would find a smaller basis)
So, what we do is take the target rectangle $[x_{low}, y_{low}], [x_{high}, y_{high}]$ and transform that into our better basis, this will result in a parallelogram, with one corner being the value $(e, f)$ where $e(u, v) + f(w, z) = x_{low}, y_{low}$ (and note that $e, f$ are unlikely to be integers). And, this parallelogram has internal angles are not extreme; the angles will be between $60^\circ$ and $120^\circ$.
So then the problem comes in finding integral coordinates within that parallelogram; for each such one, we can map it back to the $(x, y)$ coordinates, which is a solution to the original problem. This searching should be straightforward (given that the parallelogram is not extremely long and narrow)