The problem has nothing to do with "is on screen" condition. You should never use "Trigger once" in loops. And never use "Trigger once" with objects that have multiple instances.
Try this code:
Gem is on screen
Gem Tween is NOT running : Gem start tween
Gem is NOT on screen : Gem stop tween