I have made this 4-bit binary multiplier circuit, but the product of, for example: B3B2B1B0 (1100) x A3A2A1A0 (0001) = P7P6P5P4P3P2P1P0 (00101000) and not 1100,
What have I done wrong?
You scrambled the order of the input connections on your 4-bit adder. On the submodule, you have
A3 B3 A2 B2 A1 B1 A0 B0
but in your main circuit, you have them wired up as if they were
A3 A2 A1 A0 B3 B2 B1 B0
... Unless there's some magic that I can't see in your diagrams.