The bleaching is real and unavoidable in principle — benzoyl peroxide is a strong oxidizing agent, which is exactly why it kills acne bacteria without breeding resistance, and why it takes the dye out of fabric on contact (https://www.ncbi.nlm.nih.gov/books/NBK537220/).
Good news on the percentage: you can almost certainly go lower without losing results. A classic comparison found 2.5% benzoyl peroxide as effective as 5% and 10% for inflammatory acne, with less irritation (https://pubmed.ncbi.nlm.nih.gov/2948929/). Less product and lower strength also means less of it ending up on your collar.
Damage control that works: switch the leave-on to the lowest strength that holds your results; let it absorb and dry fully — ten minutes or so — before a shirt goes on; sleep on white pillowcases and use white towels so there's nothing to bleach; and lean on the wash-off format for your back, since it rinses away in the shower and spares your sheets entirely.
On expectations: the AAD pegs benzoyl peroxide's onset at around four to six weeks with full clearing taking two to three months or longer (https://www.aad.org/public/diseases/acne/diy/wont-clear), so your one-month halfway mark is right on schedule. Keep going — just in an old t-shirt.