[proofplan]
We count the same finite sets in two different ways. First, fixing a point $p \in X$, the blocks through $p$ partition the remaining points into pairs, which forces the replication number to be $(v-1)/2$. Second, counting unordered pairs of points by the unique block containing them gives $3b=\binom{v}{2}$, hence $b=v(v-1)/6$. The two integrality conditions imply that $v$ is odd and that $3$ divides $v(v-1)$, which is equivalent to $v \equiv 1$ or $3 \pmod 6$.
[/proofplan]
[step:Count the blocks through a fixed point by pairing the remaining points]
Fix a point $p \in X$. Define the set of blocks through $p$ by
\begin{align*}
\mathscr{B}_p := \{B \in \mathscr{B} : p \in B\},
\end{align*}
and define the replication number at $p$ by $r_p := |\mathscr{B}_p|$.
For each block $B \in \mathscr{B}_p$, the set $B \setminus \{p\}$ has exactly two elements. Since every $2$-element subset $\{p,q\}$ with $q \in X \setminus \{p\}$ lies in exactly one block of $\mathscr{B}$, the sets $B \setminus \{p\}$, as $B$ ranges over $\mathscr{B}_p$, are pairwise disjoint and their union is $X \setminus \{p\}$. Therefore
\begin{align*}
v-1 = |X \setminus \{p\}| = \sum_{B \in \mathscr{B}_p} |B \setminus \{p\}| = \sum_{B \in \mathscr{B}_p} 2 = 2r_p.
\end{align*}
Thus
\begin{align*}
r_p = \frac{v-1}{2}.
\end{align*}
The right-hand side is independent of $p$, so every point has the same replication number
\begin{align*}
r := \frac{v-1}{2}.
\end{align*}
[guided]
Fix a point $p \in X$. We want to count how many blocks contain this particular point. Define
\begin{align*}
\mathscr{B}_p := \{B \in \mathscr{B} : p \in B\},
\end{align*}
and let $r_p := |\mathscr{B}_p|$ be the number of blocks containing $p$.
Each block $B \in \mathscr{B}_p$ has exactly three points and already contains $p$, so $B \setminus \{p\}$ has exactly two points. The key question is: as $B$ varies over all blocks through $p$, how do these two-point sets sit inside $X \setminus \{p\}$?
They cover $X \setminus \{p\}$. Indeed, if $q \in X \setminus \{p\}$, then $\{p,q\}$ is a $2$-element subset of $X$. By the defining property of a Steiner triple system, there is exactly one block $B \in \mathscr{B}$ containing $\{p,q\}$, so $B \in \mathscr{B}_p$ and $q \in B \setminus \{p\}$.
They are also pairwise disjoint. If two distinct blocks $B_1,B_2 \in \mathscr{B}_p$ had a common point $q \in X \setminus \{p\}$, then both blocks would contain the pair $\{p,q\}$. This contradicts the defining uniqueness condition for pairs in a Steiner triple system. Hence the sets $B \setminus \{p\}$ form a partition of $X \setminus \{p\}$ into $r_p$ two-element parts.
Counting the elements in this partition gives
\begin{align*}
v-1 = |X \setminus \{p\}| = \sum_{B \in \mathscr{B}_p} |B \setminus \{p\}| = \sum_{B \in \mathscr{B}_p} 2 = 2r_p.
\end{align*}
Solving for $r_p$ yields
\begin{align*}
r_p = \frac{v-1}{2}.
\end{align*}
Because this formula does not depend on the chosen point $p$, every point has the same replication number
\begin{align*}
r := \frac{v-1}{2}.
\end{align*}
[/guided]
[/step]
[step:Count unordered pairs of points by the unique block containing each pair]
Let
\begin{align*}
\binom{X}{2} := \{A \subset X : |A|=2\}
\end{align*}
denote the set of unordered pairs of points of $X$. Each block $B \in \mathscr{B}$ contains exactly
\begin{align*}
\binom{3}{2}=3
\end{align*}
two-element subsets. Since every element of $\binom{X}{2}$ is contained in exactly one block, counting pairs first globally and then block-by-block gives
\begin{align*}
\binom{v}{2} = |\binom{X}{2}| = \sum_{B \in \mathscr{B}} \binom{|B|}{2} = \sum_{B \in \mathscr{B}} 3 = 3b.
\end{align*}
Therefore
\begin{align*}
b = \frac{1}{3}\binom{v}{2} = \frac{v(v-1)}{6}.
\end{align*}
[/step]
[step:Extract the congruence condition from the integrality of the counts]
Since $r=(v-1)/2$ is an integer, $v-1$ is even, so
\begin{align*}
v \equiv 1 \pmod 2.
\end{align*}
Since $b=v(v-1)/6$ is an integer, the product $v(v-1)$ is divisible by $6$, and in particular by $3$. Thus
\begin{align*}
v(v-1) \equiv 0 \pmod 3.
\end{align*}
Hence $v \equiv 0$ or $1 \pmod 3$.
Combining $v \equiv 1 \pmod 2$ with $v \equiv 0$ or $1 \pmod 3$ gives the two residue classes modulo $6$:
\begin{align*}
v \equiv 3 \pmod 6
\end{align*}
when $v \equiv 0 \pmod 3$, and
\begin{align*}
v \equiv 1 \pmod 6
\end{align*}
when $v \equiv 1 \pmod 3$. Therefore
\begin{align*}
v \equiv 1 \text{ or } 3 \pmod 6.
\end{align*}
This proves the stated formulas for $r$ and $b$ and the necessary divisibility condition on $v$.
[/step]