So, there are a couple of things going on here. It seems to me where we might disagree, though that's not clear, is on the question of reduction and what we mean by reduction.
When I say that software is a pattern of hardware I mean that in the metaphysical sense. The software or a set of algorithms can be implemented in different hardware, even in hardware that have a radically different architecture. This is the thesis of multiple realizability.
However, it gets tricky. Ontologically speaking, the software is not over and above the hardware -- it's just the pattern that the physical substrate is configured in. A function or set of procedures can be instantiated in a different hardware with different architecture let's say, but the sense that they instantiate the "same function" is where the crux of the matter lies.
People like Searle say that "function" attribution is relative to an intentional agent, and in his account only humans and perhaps some classes of animals instantiate intentional states (states that about an aboutness to them), whereas computers don't actually compute: they're just a set of causal relations.
Now, I don't think that software and hardware stand in any interesting causal relation. There's no explanatory gap there: the causal relations of the hardware exhaust the computational output described at the level of software. With the mind, there's a sense that the causal/functional explanations do not exhaust the properties of mentality. (Philosophers tend to make a distinction between phenomenal consciousness and intentionality, most often staking the explanatory gap on phenomenal consciousness aka qualia) Of course this is controversial, but a fork in the path of the hardware/software brain/mind analogy.
As far as I read you, you think that levels of description are indispensable for our explanatory purposes. And I'm in agreement -- but this only carries explicit implications for human cognition -- that we need higher order posits to talk about events at different scales. It does not, however, carry any strict implications for ontology/levels of organization (though it can be argued that it can with additional assumptions). The former is an epistemological matter, the latter metaphysical.
I'm not a reductionist so I think that levels of organization are real, but levels of abstraction from hardware to higher level computer languages are explainable. Levels of abstraction from neural circuitry up mental states and complex higher order mental states are as yet not. It is consistent with most of what we know that they should be, but we have yet to verify that.
Re: we can talk about software explanations without reference to hardware. Sure. I think that software and hardware vary independently, just as ideologies relative to the the social collectives that instantiate them. The philosophical question is just how do they vary independently. One way to answer this in terms of your point is through intentional agents. It's only because humans have written the software and it is intelligible them that we can have such explanations. The computer understands the software only at the level of machine code.