I have a Longines from the 50s (pretty sure it's a 19A movement, will find out for sure at some point in the near future) that runs perfectly when it sits on my desk. I'll set it there for several hours or more and look at it and it doesn't lose much time. When I wear it though, it sometimes stops, and then starts up again with a little shake, tap, etc.
Perhaps an important thing to note is that the movement does move around in the case. It's especially noticeable when adjusting the time - the dial will rock back and forth slightly. Obviously, it wouldn't move around when sitting still on my desk, but when I'm wearing it, of course it'll shake quite a bit. Sometimes I'll look at it and notice that it lost a minute or two, but is still running. Would that explain why it runs fine on my desk, or is it just a coincidence?