1.Да.Background Agent
может запускаться каждые 30 минут и отправлять данные на сервер
2.Да.Microsoft.Maps.MapControl
есть все, что вам нужно.Например, нарисуйте линии с классом MapPolyline
:
MapPolyline polyline = new MapPolyline();
polyline.Locations = new LocationCollection();
map.Children.Add(polyline);
3.Вы можете сделать что угодно.Кнопки могут быть в стиле Metro с изображениями.Но старайтесь, чтобы приложения выглядели согласованно с системой