This is a question about how BibTeX and TeX interact.
In this question: Apalike style several languages the OP asks for a way to get citation callouts with French in one part of the document, and English in the other part of the document. A biblatex solution is suggested, which of course works, but doesn't use natbib anymore.
I'm not trying to solve this problem directly, but instead trying to understand why it is that the following simple minded approach to the problem won't work. The approach simply makes the natbib \harvardand macro a conditional that checks for the current language, and inserts the appropriate word. I assume the problem is that at the point that \harvardand is expanded, the language name is unavailable. I'd like to understand the details of how this works, and if there's a way to do this at all using an approach along these lines.
\begin{filecontents}{\jobname.bib}
@article{twoauthors,
title={A cool paper},
author={Duck, A. and Marmot, A.},
journal={Journal of Irrelevant Science},
year={2019},
volume={1}}
\end{filecontents}
\documentclass{article}
\usepackage{natbib}
\usepackage[french,english]{babel}
\usepackage{iflang}
\bibliographystyle{agsm}
\usepackage{etoolbox}
\AtBeginDocument{\gdef\harvardand{\IfLanguageName{french}{et}{and}}}
\begin{document}
\cite{twoauthors} Manually: {Duck \harvardand\ Marmot}
\begin{otherlanguage}{french}
\cite{twoauthors} Manually: {Duck \harvardand\ Marmot}
\end{otherlanguage}
\bibliography{\jobname}
\end{document}

