Is the GPS device up and running when the Pi boots? If you can't guarantee that, better to use 'bind' instead of 'connect' in the service unit.
Double check your work. I run rfcomm as a service all the time, no special considerations.
That's what you'll do in your code. Noble and Bleno are a good choice for this, and should have some examples.However, I uderstand that I need to include a new GATT service to the peripheral and add characteristics that will be read by the central, correct?