I am not sure but I think it does what you ask for. I just create a random list lineweights of weights for each line. (I would discourage storing the weight within the Line object in any way.)
lines = DiscretizeRegion@*Line /@ Partition[N[pts], 2]; lineweights = RandomReal[{0, 10}, Length[lines]]; rectangles = Flatten[Outer[ Rectangle @@ Transpose[List[##]] &, Partition[N[lver[[All, 1, 1, 1]]], 2, 1], Partition[lho[[All, 1, 1, 2]], 2, 1], 1]]; A = 1 - Outer[ Boole@*RegionDisjoint, lines, rectangles ]; // AbsoluteTiming means = Mean[lineweights A]