jerryf as Pommie said "I²C devices is set internally" But he didnt mention some devices have a external address like A2:A0 that 3 pin to set the last 3 digits of the address. This way you can have multiple of the same thinig needed on 1 line.
You have 1 I2C/SPI port. Which can be either but not both. I suggest I2C as you dont need CS Lines like SPI. Its great but if pin count is a issue then SPI is an issue.
For LCD stuff. You can checkout Futz code for a 2 Wire LCD controll. Which is in C so it can be used easily.
If you use I2C then be sure that your RTC & External Flash Mem is I2C compatible.
This will help you alot: (if you read the parts you want to learn)
I wonder how to connect SPI and USART in the same time, RC7 is RX for serial and DSO for SPI so how that would be combined, secondly I wish if someone can guide me to where I can find working example fo connecting LCD with 4 data pins and this PIC18F4550. Anybody can help. many thanks.