Just for clarity, the inspector did scan the bar code, then looked at the scanner and then very politely said we were on the wrong train. He reluctantly agreed with my point of view when I showed him the itinerary on my paper print out of the pdf and was very happy when I showed him the Apple pass (which showed the correct train time). He then said it must be a faulty bar code. Whether he was reading his device incorrectly or whether it was displaying incorrect information I cannot say.
I think calling it a faulty barcode is a rather bold statement for the inspector to make!
From a technical perspective it is an interesting one - walks are an interesting case, and it's a tad ambiguous.
However on re-reading it all, I think the implementation is correct to encode 12:49. I think it's the Apple Wallet ticket that's potentially dodgy saying 13:05. I do think that as @MrJeeves posted above, the newer style itineraries make this clearer and hopefully they'd be happier with that style on the PDF. I've helpfully changed my mind immediately after posting. The official answer is ambiguous, and the below definitely still applies, but I'm inclined to change the implementation to ignore the "walk" mode only.
I don't know which scanning app EMR use, but on the most popular one at least the service ID (which is correct in your ticket) is at least as prominent as the depart time, and really that should have immediately been the end of it without needing to look at the PDF itinerary or the Apple Wallet ticket.