why does $ A≤_p \#SAT$ if $A \in BPP$
Using the proof of the Cook–Levin theorem, for every input $x$ you can construct in polynomial time a SAT instance $\phi(r,z)$ which encodes "$M$ accepts when run on input $x$ and randomness $r$". Here $r$ is a vector of $m = \mathit{poly}(n)$ bits, representing the random bits of $M$, and $z$ is an auxiliary vector, with the following property: in any accepting run of $M$, there is exactly one setting of $z$ which satisfies $\phi$.

By definition, if $x \in L$ then $\phi$ has at least $(2/3)2^m$ satisfying assignments, and if $x \notin L$ then $\phi$ has at most $(1/3)2^m$ satisfying assignments. You can distinguish between the two cases using a $\mathsf{\#SAT}$ oracle.