OK. Imagine a capacitor between the SCL pin of the display and its local GND, which represents the parasitic capacitance which must be discharged each time the pin is driven low.
The current path is from the SCL pin of the display, along the length of the SCL track, into the PIC, through the output driver to the GND pin, then back to the GND of the display via whatever route it can take through your GND pours.
Repeat the exercise for SDA, obviously. Also consider the current path which exists when those caps are charged up again when the bus goes high. Where does the current come from? Do you have a good quality, low ESL positive supply anywhere? What's the path from that supply to your display?
The radiated energy from a loop antenna - which is what you've constructed - depends on the frequency and the enclosed area. The frequency depends on the edge speed, so slowing down the edges can help. Maybe try putting 100R in series with SCL and SDA to form a low-pass filter. You should get away with this on I2C since it typically uses Schmitt trigger inputs, so a slow edge rate isn't really a problem.
The real problem, though, is that you've built a radio project without solid, unbroken power and GND planes. I cannot stress enough just how important these are.
With an unbroken GND plane, the current which flows in the SDL or SDA trace can (and does) return along the GND plane, following the path of the trace above it. The enclosed loop area falls, theoretically, to zero, and so does the amount of RF energy emitted.
In the practical (non-ideal) case there's still some noise, of course. The best GND plane you can make still has some inductance and isn't located right next to the traces on the surface, but it's still enormously better than any routed GND traces or chopped up copper pours.
You can improvise a GND plane with some copper tape on the back of your single sided PCB, but really the best solution is to use a commercially produced 4 layer board with solid power and GND planes.