Update:
(i just lightened the bg so that I could see the lighter parts of the sheep sprites)
1. basically, the trailing mechanic is basically just the game tracking the position of the sheep every frame and just making the lamb occupy one of the past positions (this means that if the sheep stands still, the lamb will occupy a space behind it which is like, fine). The offset I'm using here is 16 frames, but what this means is that sometimes the lamb will flash to the sheeps previous position if it collected the lamb less than 16 frames ago. That's also the cause for the baby sheep momentarily appearing at the opposite end of the screen. Or the lamb hovering over edges by virtue of the sheep sprite being bigger than the lamb. Honestly... its more of a visual glitch than a gamebreaking one so for the moment I'm probably not going to mess with it.
2. You'll notice that when the sheep transitions into the second room, the first lamb disappears; the lamb standing on the table in that second room is not the same lamb. This is because the lambs are loaded into the beginning of the rooms and lowkey treated as fixtures of the rooms. But, the lamb will follow the sheep into an empty room with only the visual stuff. If the lamb is led into a room with a lamb already in it, it disappears. I think its being overwritten? I'm actually not quite sure but I knew that when coding this something like this would happen because I need some sort of exterior list to hold the lambs (like i have one, but i need a special one for trailing lambs)
3. also, the roaming definition works! when not trailing, the lamb may stand still, or move in either direction. My only later later fix to this is that it can fall down ledges, but not go up them.
so my resolution for today/tomorrow is to support multi-lamb collection. If I have time afterwards, I think I'll make a tileset for the levels