using gb4e keeping interlinear glosses together on the same page

\glt is a very simple macro and it seems you can add \nobreak and it works in this case at least...

\documentclass[11pt,letterpaper]{article}
\usepackage{lipsum}
\usepackage{gb4e}
\def\glt{\nobreak\vskip.17\baselineskip}
\noautomath
\begin{document}
\lipsum[1-4]
\begin{exe}
    \ex \gll wuz x̃ũch it-ak xohish-em\\
             1\textsc{sg.prn} bread eat-\textsc{inf} want.\textsc{prs}-1\textsc{sg}\\
        \glt `I want to eat bread.' 
\end{exe}
\end{document}

Here is a different solution that works for both gb4e and linguex (which doesn't require the use of the \glt macro to introduce the translation line):

With gb4e

\documentclass[11pt,letterpaper]{article}
\usepackage{lipsum}
\usepackage{etoolbox}
\usepackage{gb4e}
\makeatletter
\apptocmd{\gl@stop}{\nobreak}{}{}
\makeatother
\noautomath
\begin{document}
\lipsum[1-4]
\begin{exe}
\ex
\begin{xlist}
    \ex \gll wuz x̃ũch it-ak xohish-em\\
             1\textsc{sg.prn} bread eat-\textsc{inf} want.\textsc{prs}-1\textsc{sg}\\
        \glt `I want to eat bread.'
    \ex This is another example. 
\end{xlist}
\end{exe}
\end{document}

With linguex

\documentclass[11pt,letterpaper]{article}
\usepackage{lipsum}
\usepackage{etoolbox}
\usepackage{linguex}
\makeatletter
\apptocmd{\gl@stop}{\nobreak}{}{}
\makeatother
\begin{document}
\lipsum[1-4]
\exg. wuz x̃ũch it-ak xohish-em\\
         1\textsc{sg.prn} bread eat-\textsc{inf} want.\textsc{prs}-1\textsc{sg}\\
          `I want to eat bread.'

\ex.    This is another example.

\end{document}