You are mixing formatted input, (cin >>pperiod;), with unformatted input, the "getline". The problem is that formatted input leaves the new line, "\n", in tthe input buffer. The unformatted "getline()" will read the "\n" from the input buffer and move on not allowing any new input until the next formatted input.
This would clear the entire input buffer before the "getline()".
The rest of the "cin >>" statements should not be any problem.
While testing the change I changed the first prompt for "Payroll Period". It looked funny sticking out to the right the way you have it. Just made it match the rest of the inputs.
Your final "cout" statements can be written this way to make it easier to see what the output will look like.