Collisions in the cyclotomic knapsack function
Thanks for the question!  You are correct that there is a bug here.  Indeed, the sentence "choose $\mathbf{b}_i$ s.t. $\ldots$" makes no sense: the LHS is in $H$, but the RHS may not be.  Fortunately, there is a simple fix which guarantees $\mathbf{y}'_i \in H$. (This must have been what we intended in the first place, based on how the rest of the proof goes; see below.)

The fix: the proof of Theorem 5.1, Item 1, second bullet, should read: Let $\mathbf{y}'_i = \mathbf{y}_i \bmod \mathbf{B}'$ (not $\mathbf{B}$), where $\mathbf{B}'$ denotes an arbitrary basis of $\mathcal{L}(\mathbf{B}) \cap H$.  (Such a basis is easy to compute by linear algebra.)  That is, we sample a Gaussian over $H$, and mod it by a lattice contained in $H$.  So, we clearly have $\mathbf{y}'_i \in H$.

Similarly, in the proof of Claim 5.2 ("Notice that $\mathbf{y}'_i \ldots$") we care about $D_{H,s} \bmod \mathcal{P}(\mathbf{B}')$, not $\mathbf{B}$.  (Indeed, it doesn't make sense as currently written: Lemma 2.7 requires modding by a lattice contained in $H$.)

It looks like the rest of the proof goes through as written.

Let me also mention that subsequent works manage to avoid all this cumbersome "bookkeeping" associated with subspaces etc., by working with rings defined by irreducible polynomials (or more generally, in number rings).  See, e.g., Lyubashevsky-Micciancio ICALP 2006, Peikert-Rosen STOC 2007, and Lyubashevsky-Peikert-Regev EUROCRYPT 2010/JACM 2013.