The problem is that the list contents is refilled every time the managed bean is created. Since the managed bean has a request scope, it will be created on every action (this includes ajax actions). Please refer to How to choose the right bean scope? and the link provided there where it explains the scopes for managed beans and provides good examples for their usage.
Since you're using JSF 1.2, you can't use the view scope. Instead, to solve this problem you have two ways:
Change the scope of your managed bean to session scope. It will solve your problem but the managed bean will live until the user session expires, not a really good solution.
Maintain your managed bean in request scope and use the power of RichFaces 3.3 and
@KeepAlive
annotation. This annotation will make your request managed to live while the user is still in the same view (pretty similar to view scope). Its usage is pretty simple:@KeepAlive public class GpsReport { //managed bean definition... }