Вам нужно запускать сервис с помощью связки AlarmManager и BroadcastReceiver.
В AlarmManager нужно подписаться, чтобы он вызывал BroadcastReceiver с определенной периодичностью, последний же должен стартовать service.
Собственно таким образом вы должны избавиться от проблемы, а так же service не будет попусту висеть в памяти, если его убивать каждый раз, как он отработает.
Я не знаю, как это сделать в xamarin, так как пишу на java, но это должно работать и там.