I was recently designated to develop a project based on collecting GPS data, which should be launched in prototype version in a very short time, and the first thing that came to mind was the use of an Arduino + shields for such a task. However, I quicly noticed that this platform do not have default support for Serial interrupt, which I think is essencial considering that GPS sentences vary from 50 to 75 bytes per second. If the system have to do other tasks responding in real time perhaps you should consider using C to code, or to make a search on the Web to learn how to add the UART interrupt feature to the Arduino IDE. Answering your question, and in a way justifying the remark above, you can choose any module made for Arduino, but you will have to do the identification of the information via firmware and allocate its values to variables in reception time