According to the EJB3 Spec, 4.7.11, the container is responsible to ensure that only one thread is passed through any session bean instance at any one time. Therefore, using the synchronized on a method would be moot.
However, it's entirely possible to have many instances accessing the same field (static?) and that leading to your problems...
Mind posting the session bean code (or relevant portions)?