Are $\mathsf{\#P}$ problems harder than $\mathsf{NP}$ problems
As I have hinted at in the comments, that your reduction exists is not at all surprising. As in my answer to your previous question, your "Expand and simplify" part takes potentially exponential time and, thus, does not qualify as a polynomial-time reduction (which is the standard notion used to compare the classes in question). Exponential-time reductions here are irrelevant because both $\mathsf{NP}$ and $\#\mathsf{P}$ are contained in $\mathsf{EXP}$, so the reduction is powerful enough to solve the problems it should be reducing.

As to address the question in the title, notice the following: Let $P \in \mathsf{NP}$ be some problem, $S_P$ the solution set associated with $P$ (i.e., the $\{0,1\}^\ast \times \{0,1\}^\ast$ relation which, for instance, associates each $x \in P$ with its (poly-time verifiable) solutions), and $\#S_P\colon \{0,1\}^\ast \to \mathbb{N}_0$ be the counting problem associated with $S_P$, that is, $\#S_P(x) = |S_P(x)|$. For $P = \mathsf{SAT}$, for example, $S_P$ is simply the relation of formulas to their satisfiable assignments, and $\#S_P$ the number of satisfiable assigments. Then you can recast $P$ as the (decision) problem $\{ x \mid \#S_P(x) \ge 1 \}$. This means that having a procedure which counts solutions (i.e., computes $\#S_P \in \# \mathsf{P}$) directly yields something which decides $P \in \mathsf{NP}$.

Not only that, but notice that above we do not even actually use the value $\#S_P(x)$ other than to test that it is not zero. It is conceivable that we can use that accurate value towards solving problems much harder than $\mathsf{NP}$ (e.g., as Toda's theorem tells us; see David Richerby's answer). This gives us enough reason to believe that problems in $\#\mathsf{P}$ are, in general, much harder than those in $\mathsf{NP}$ (the most conspicuous candidates being the $\#\mathsf{P}$-complete problems).