Based on your clarification, I'm pretty sure I'm answering the right question, but do let me know if you're actually asking something different. Also, I've added a bit at the end to address the new question in your edit.
Opposite categories always exist, and their construction does not require us to ever think about what a morphism "really is", or to perform complex operations on morphisms in any way; it is an entirely formal process.
Specifically, the "reversed arrow" in an opposite category corresponding to a "starting arrow" $\alpha$ is the starting arrow $\alpha$. That is, the arrows in $C^{\rm op}$ are exactly the same as the arrows in $C$, only they "mean" the opposite thing.
For example, consider the category $\bf Set$. Objects are sets, and morphisms are functions between sets. For instance, the function $f: \{0, 1\}\rightarrow \{0\}:0\mapsto0, 1\mapsto 0$ is a morphism from $\{0, 1\}$ to $\{0\}$.
In ${\bf Set}^{\rm op}$, the very same $f$ is still a morphism - only now $f$ is a morphism from $\{0\}$ to $\{0, 1\}$.
Somewhat more formally, what's going on is the following. Roughly, a category $C$ consists of a collection $\mathcal{O}$ of objects, and - for each pair of objects $x, y\in\mathcal{O}$ - a collection ${\rm Hom}(x, y)$ of things we call "morphisms from $x$ to $y$." (We also demand that there be an appropriate composition operation, and yadda yadda.)
The point is, though, that we don't demand anything about what a morphism "really is". The collection ${\rm Hom}(x, y)$ is just that - a collection. Its members could be anything.
The opposite category construction defines a category $C^{\rm op}$ to consist of the following data:
The objects of $C^{\rm op}$ are exactly the objects of $C$.
The morphisms of $C^{\rm op}$ are defined as: ${\rm Hom}_{C^{\rm op}}(x, y)={\rm Hom}_C(y, x)$.
Note that this doesn't involve "inverting the morphisms" at all: a morphism from $x$ to $y$ in $C^{\rm op}$ is literally the same thing as a morphism from $y$ to $x$ in $C$. At no point do we "dig into" the morphisms in any way.
NEW: You asked additionally:
When you say a statement about a category you get the dual statement for "free" because the proof also applies in the opposite category. Do you only get things for free when your are talking about types of categories and not specific categories?
Yes. If $\varphi$ is a statement true of a category $\mathcal{C}$, its "dual" statement $\varphi^{op}$ is true of the category $\mathcal{C}^{op}$, but not necessarily of $\mathcal{C}$ itself.
For a silly example of this, consider a category with three objects $a, b, c$, and five arrows: the identity arrows, a single nontrivial arrow from $a$ to $b$, and a single nontrivial arrow from $a$ to $c$. This category satisfies the statement "There is an object with three arrows coming out of it." However, the opposite category does not satisfy this statement. Conversely, the opposite category satisfies "There is an object with three arrows going into it", while the original category does not.
And, as you suggest, the existence of products does not entail the existence of coproducts, and vice versa (although your example was not correct).
What you do get "for free" are theorems about general categories: if you prove that $\varphi$ holds of every category, then you also know that $\varphi^{op}$ holds of every category; this is because $\varphi^{op}$ must hold of the opposite of every category, but every category is its opposite's opposite! (That is, $(\mathcal{C}^{op})^{op}=\mathcal{C}$.)
(You can also get "for free" theorems about classes of categories which you have already proved are closed under $^{op}$: for instance, if every fleen category's opposite category is also fleen, then having proved "every fleen category has coproducts" I immediately get "every fleen category has products.")