Back in the olden days, the 8088 and 8086 had four general-purpose registers, named AX, BX, CX, and DX. Those registers were all 16 bits wide. Each register could also be accessed as two 8-bit chunks, the high byte and the low byte. Those 8-bit chunks were AH/AL, BH/BL, CH/CL, and DH/DL. Assigning a value to AH changes the contents of the upper byte of the AX register; assigning a value to AL changes the contents of the lower byte of the AX register.
Then the 80386 came along. It used 32-bit wide registers, but preserved the 16-bit and 8-bit features of the 8086. That way, assembly programs written for the 8088/8086 could be re-assembled to target the 80386 without having to rewrite the code. The 32-bit registers were named EAX, EBX, ECX, and EDX. The lower 16 bits of each of those registers could be addressed by the old names, AX, BX, CX, and DX. The low 8 bits of each register could be addressed by their old names, AL, BL, CL, and DL. Further, the upper 8 bits of each of the lower (16-bit) registers could still be addressed by their old names, AH, BH, CH, and DH.
I'm sure you can guess what happened when Intel introduced 64-bit processors. Yup, all the old names were still there with the same meanings, but those 8-bit, 16-bit, and 32-bit registers were each part of a 64-bit general register. The names of the 64-bit registers are RAX, RBX, RCX, and RDX. RAX is 64 bits wide; EAX is the lower 32 bits of RAX; AX is the lower 16 bits of RAX; AL is the lower 8 bits of RAX; and AH is bits 9-16 of RAX.
That's the story of the general registers in the 8086 family. There are other registers with various specialized roles, and their sizes are appropriate for what they do. For example, on the 80386, as mentioned earlier, the general registers are 32 bits wide. The segment registers (which are used to calculate the physical address of the memory being accessed) are 16 bits wide. So, no, not all registers are the same size.