Faits : A. Par jugement du 28 avril 2016, le Tribunal correctionnel de l'arrondissement de La Broye et du Nord vaudois a condamné X._ à une peine privative de liberté de 16 mois avec sursis et à une amende de 3'000 fr., pour violation des règles de la circulation routière, violation grave qualifiée des règles de la circulation routière et violation des devoirs en cas d'accident. B. Statuant sur appel de X._, la Présidente de la cour d'appel pénale du Tribunal cantonal vaudois a rejeté la réquisition d'audition d'un témoin, par avis du 29 juillet 2016. Par jugement du 4 octobre 2016, la cour d'appel pénale du Tribunal cantonal vaudois a rejeté l'appel et confirmé la décision de première instance. La cour cantonale a retenu les éléments de fait suivants. A Céligny, le 7 mai 2014, à 14h40, X._ a circulé en direction de Lausanne au volant de son véhicule automobile à la vitesse de 110 km/h (marge de sécurité déduite), alors que la vitesse était limitée à 80 km/h, commettant ainsi un excès de vitesse de 30 km/h. Le 31 mai 2014, vers 20h45, X._ circulait sur la route cantonale Yverdon-les-Bains - Estavayer-le-Lac, au volant de sa voiture, à une vitesse nettement supérieure à celle autorisée hors des localités. Sur le tronçon rectiligne situé entre le chemin d'accès au camping et le chemin d'accès au port d'Yvonand, X._ a dépassé à grande vitesse la voiture conduite par B._. Parvenu dans une courbe à droite sans visibilité, peu avant le passage à niveau CFF, X._, toujours à haute vitesse, s'est déporté sur la voie de gauche réservée aux usagers circulant en sens inverse en franchissant la ligne de sécurité et dépassant une file de véhicules. Il s'est alors retrouvé en présence de la voiture conduite par A._, qui circulait normalement en sens inverse à la vitesse de 40 km/h, dès lors qu'elle venait de démarrer après s'être arrêtée au passage à niveau dont les barrières venaient de se relever. A._ a donné un coup de volant à gauche pour éviter une collision frontale et a terminé sa course hors de la chaussée opposée. X._ a mordu avec sa voiture la bordure herbeuse située à gauche dans son sens de marche, a touché une balise, est revenu dans sa voie de circulation et a poursuivi sa route. C. X._ forme un recours en matière pénale auprès du Tribunal fédéral contre la décision cantonale dont il requiert, avec suite de frais et dépens, la réforme en ce sens qu'il est acquitté des infractions de violation grave qualifiée des règles de la circulation routière et de violation des devoirs en cas d'accident, seule une peine pécuniaire devant être prononcée. Subsidiairement, il conclut à l'annulation du jugement et au renvoi de la cause à l'autorité cantonale. Il sollicite l'octroi de l'assistance judiciaire. Invités à se déterminer sur le mémoire de recours, le Ministère public et la cour cantonale y ont renoncé.