when accessed as SLAVE, with a Repeated START it is not responding correctly. The reason for that is because the counter for the bits starts counting too early after the Repeated START.
FIX suggestion:
in file ms_core.v the internal wire bit_cnt_rst should also be '1' when (detect_start = 1).