Based on the information you've provided, I suspect one of the following issues:
A) at least one cell has substantially less capacity than the others, or;
B) one of the BMS leads is intermittently disconnected.
My recommended test procedure is the same for either condition:
1: Turn key off and IMA switch on
2: Connect a laptop to LiBCM's USB cable. You'll need to leave the laptop plugged in because this test will take hours.
3: Open the
Arduino Serial Monitor Window.
4: In the bottom-left corner of the Serial Monitor Window, verify the button "Show timestamp" is checked. If not, click the button until the check mark appears.
5: Plug in the grid charger. LiBCM should start grid charging.
6: Let the test run for a few minutes, then copy and paste the entire contents of the Arduino Serial Monitor Window to a test file. Save this file as "00 Data.txt".
7: Allow LiBCM to grid charge the pack. This will take hours. You should stay nearby enough that you can respond to any beeping, if it occurs.
8: After every hour of charging, copy the entire contents of the Serial Monitor Window into a new text file. Save this new file as "01 Data.txt", "02 Data.txt", "03 Data.txt", etc.
9: Continue logging data until LiBCM is done charging ** and balancing *** the cells.
**LiBCM is done charging when high cell voltage parameter reads "H3.900" (the top left value on the 4x20 display).
***For the purposes of this test, LiBCM is done balancing when the cell voltage delta parameter reads "d0.005" or less (the top right value on 4x20 display).
If at any point during the test LiBCM starts beeping, immediately unplug the grid charger, then copy and paste all data from the Serial Monitor Window into a text file. Save this file as "Error-beeping.txt".
...
When this test is finished, place all the files into a .zip and upload here for analysis.