Micha, the maximum motor rpm is ultimately determined by the battery voltage
(unless you have the maximum speed restricted set in the controller parameters).
If your motor runs at 334 rpm
(20" wheel @ 32km/h) on 42v, I would expect it to run at 294rpm on 37V
(334 รท 42 x 37 = 294 which would be 28.15km/h for a 20" wheel) therefore your reported 29km/h seems to be about right for the low battery voltage.
If your battery is below 37V, you either have an almost completely exhausted
(flat) battery, or a battery with one or more faulty cells which is causing the overall battery voltage to sag excessively.
If the battery is reading less than 37V under a no load condition, the 10 parallel cell groups have an average voltage of 3.7V per cell, which according to the following discharge curve means that the battery is nearly drained completely
(over 96% discharged).
To check the individual voltage of each of the cell groups you will need to dismantle the battery to access the balance lead connector on the
BMS board and measure each adjacent pair of leads in turn.
Sometimes a faulty cell group will only be noticed while the battery is under load, so you may need to load the battery before you notice which group or groups of cells is sagging badly.
Alan