Why does an inverted page table keep a chain of pages per frame when it can only store one of such pages?
Hash functions can have collisions, and you need to resolve the collisions.  If two (PID, page_number) pairs map to the same row, only one can be stored there, and you need to have a mechanism to find the other one.
You can use page tables to map multiple virtual addresses (pages) to the same physical address (frame).  For instance, this may be used to support shared memory, copy-on-write, on-demand zeroing for memory allocation, and more.