Thank you @Joytsna for your answer!
I actually figured it out last night - and you are correct, the 'Position' shouldn't be there. Here is the correct code for the addistener() that now works in my app (adapted from Marc McLean's answer):
addlistener(app.l1, 'MovingROI', @(varargin)l1Moving(app, app.l1));
It does not work without the "(varargin)" and "(app, app.l1)" pieces, which I still quite don't understand. I know that "varargin" allows a function to take in a variable number of inputs, but I'm not sure what exactly it does here, when placed before the function handle.