I cannot see from your code what the meaning of 0x00 in I2C_MasterSendStart(Device Address,0x00) is, please use the provided #defines. They are different when using different PSoC families afaik.
same for I2C_MasterSendRestart(Device Address,0xff) and the 0xff.
Lastly: Standard for I2C is: the last byte red from I2C should be NAKed. is the (0) in I2C_MasterReadByte(0) an ACK or a NAK?
I have modified my code like this
I found that in I2C_master.c mention the side effect of function is I2C_MasterReadByte .
It is written that function will entered without a 'byte complete' bit set in the I2C_CSR register. It does not exit until it will be set. So may be I2C_MasterReadByte() is not exiting as register nit is not set?
Leave away the Master5ClearStatus().
Every call returns a status (except the ReadByte() ). The first status != 0 indicates an error, there are #defines to show the reason. So while debugging check the returned values.
The I2C_Stop will kill any ongoing transfer, do not use it, call Start() only once in initialization and keep the interface running.