1. I2C_MasterReadBuf() will generate a start condition, slave address and the read/ write bit and will byte after byte in the further transactions. All these are managed by the ISR. Hence the I2C_MasterSendStart() is not required.
2. The right condition to wait for the transaction to get completed is:
while(0u == (Master_I2C_MasterStatus() & (Master_I2C_MSTAT_ERR_XFER | Master_I2C_MSTAT_RD_CMPLT)))
I have attached the modified project with this response. Hope it helps!