@goatboy you can create a flow with trigger as follows
And then in the condition you can yse a logic flow and use the ‘Label’ tag and check against the label you used in geofence like follows
However, as yours is 2015 I am not sure what status is returned from bmw as the most oldest I tested with is 2016 LCI post July build. Based on the status returned capabilities are enabled in the device. If you can send the diagnostic report with trace level and logging enabled I can get back to you with more detailed info.
For the other issue can you enable logging and set it to trace and keep the app running for a while and send in the diagnostic report from the app. I will try to see what is the cause. Remember to set the trace level back to information and disable logging.