You're lacking all the calls, and the most important part, the setup/initialization.
Also the gotos... uhh no good, are you coming from old school assembly?
Do you really understand how i2c works? Some basics:
https://openlabpro.com/guide/basics-of-i2c/https://rheingoldheavy.com/i2c-signals/Of course you're not getting ACK, ACK is set by the slave by pulling SDA low, which you aren't connecting, so you're getting a NACK!
Show us the rest of your i2c-related code for the slave & master...
How is your circuit? And the pullpup resistors?
It's clearly 100KHz, not 400.
Your waveforms look wrong, i2c lines should be floating (high) when idle, but SDA is LOW before/after your clocks.
This is how a byte transfer should look:

The NAK at the end means the receiver doesn't want more bytes, thus ending the transfer.
But for the address, a matching receiver will always acknowledge.
10-bit addressing actually sends 2 bytes addressing bytes, not 10 bits! (You must take care of each of these bytes)
Check pages 144-145 of the
PIC18F252 datasheet! Better you throughly read the i2c section again
