So unless I'm misreading something (likely) or there's code in another file that I'm not seeing, the code is collecting all of the available channels, but only does anything with the inputs. Meanwhile, the input channels are assigned to "ichannels" at the same place, and it looks like the next code block (starting at L#229) collects the info on them, initializes them, and (i assume) adds them to the list of available channels in mumble. Looking at the asio backend code you linked, the only thing I see that stands out is that the output channels are collected and "ochannels" is defined and set on lines 222-225, but then nothing is ever done with them. That means I speak a little bit of programmer and a lot of gaffer, so hopefully I can translate well enough that we can figure out where the actual problem is. The extent of my programming experience is glue-code in non-compiled languages, and moderately effective rubber-ducking for the guys who get paid by the line. I'm not a programmer, I'm a network admin who was a sound tech in a past life. We got two groups of people with very different skill sets trying to talk about a feature. So it's pretty likely that the crash IS happening inside the ASIO device drivers, but only because they're not gracefully handling whatever is being done by mumble.
I would even go so far as to suggest that the ASIO drivers that "work" are functioning because those developers have included some trap or workaround for this particular error and are functioning due to being written to gracefully handle some out-of-spec behavior. The fact that mumble's behavior is 100% consistent across multiple ASIO drivers, OS revisions, and hardware configurations pretty strongly implies that Mumble is doing something weird when it attempts to access these ASIO devices. I do get the option to submit a report after restarting, so I went ahead and intentionally did that via the 'misconfiguration' crash method just a moment ago. (which is only a minor surprise, as that's a misconfiguration, but it should produce an error, not a CTD.)
In my case(s), Querying the ASIO devices repeatedly eventually causes a crash and assigning inputs to both a mic and speaker device causes a crash immediately.
I have submitted crash reports a few times over the last couple of years, but If you can point me in the right direction for how to enable debugging or force a stacktrace, I'll attempt to replicate the issue while work is slow. I actually gave up after realizing that even if it WAS working as expected, mumble only manages to query inputs no matter what ASIO driver/device is being used.