I have done a little more work, starting from the 'A tour of the Bulge battlefields' book mentioned above in post 33.
Just to see how it goes I started to map out the route in Chapter 1, Monscau - Hofen Wahlerschied - The North Shoulder - Elsenborn Ridge sector, which includes the so called, Wahlerscheid or 'Heartbreak Crossroads', all in Google, just to get a feel for what was involved.
The main German offensive was conducted by the 1st SS Panzer Korps, whose 12th SS Panzer Division and its supporting infantry from the regular German army spearheaded down
five separate assault routes (code named
Rollbahns) listed A to E, that were targeted westwards (basically into the 2nd and 99th US Infantry Divisions, through the twin villages of Krinkelt-Rocherath, across the Elsenborn Ridge towards the river Meuse, which of course they never reached.
https://goo.gl/maps/PdHqpVzi5K32
The route taken near enough mirrors that in the book but it's a little incomplete at the moment. Even so, at just under 56 km in length it would, when driven, embrace at least twenty or more individual sites of 'action' involving multiple individual units from the American and German side. If nothing else, it highlights how the battle (so often condensed into just Bastogne in the public's imagination) embraced many more 100's to 1000's of men, often in quite small groups, cut off, surrounded, fighting, floundering about or just plain lost. The book lists the units involved in each action and their exploits. This again only serves to highlight how units were thrown together, attached and then detached to other units as the fighting intensified. It's not far as the crow flies south-south-west to Bastogne from the Elsenborn Ridge but to them fighting and killed in the all but devastated twin villages of Krinkelt-Rocherath and on the ridge itself, Bastogne might as well have been on the far side of the moon.
I turned this video up on YouTube which explains what went on:
<iframe width="560" height="315" src="https://www.youtube.com/embed/Wd8pwCzW4co" frameborder="0" allowfullscreen></iframe>