The program counter must be at least 24 bits.
Typically, a 32-bit microprocessor will have a 32-bit external address bus and 32-bit program counter, unless on-chip segment registers and used that may work with a smaller program counter.
If the instruction register is to contain the whole instruction, it will have to be 32-bits long; if it will contain only the op code(called the op code register) then it will have to be 8 bits long.