Difference between ICR1 and OCR1A - in Fast PWM?

The timers run continuously. As configured by the Arduino core, they count at about 256kHz in 8bit mode, and wrap around from 255 to 0.

OCR is the "Output Compare Register." When the timer counter value matches the value you've put in the OCR, the module does "something." The core configures an output pin to be set when the counter hits zero, and cleared when the counter matches an OCR value, which gives you PWM. (approximately. There are details...)

ICR is the "Input Capture Register." You can set up the timer so that when the ICRn pin changes, the timer value at that instant is copied (by hardware) to the ICR, where you SW can read it "later." So if you read the ICR at each edge of a pulse on that input pin, you can measure the length of the pulse.

The very similar symbol names are just a coincidence of the English language ("Capture" and "Compare" both start with a "C") - the functions are very different. In particular OCRn are registers that you write, and ICR is a register that you read.