As "b1" and "b2" return the same value
No, they don't return the same value. I didn't try to debug the rest of your situation, because I stopped when I read that comment. For clarity:
b1 = {{1}, {2}, {3}}
b2 = {{Range[1, 1]}, {Range[2, 2]}, {Range[3, 3]}}
(* b2 is now {{{1}},{{2}},{{3}}}, which has an extra level of lists. *)