Are you developing and testing your code with php's error_reporting set to E_ALL and either display_errors set to ON or log_errors set to ON? There are variables and call-time parameters scatted throughout the code that don't exist or don't match up and would be producing errors.
Some specific problems (or doing thing that don't result in anything useful happening) -
1) The code creating the instance of the login class has two call-time parameters. Neither of these variables exist at that point and would be throwing php errors. That class constructor isn't defined to accept or use any call-time parameters, so, nothing is being done with these two values anyway.
2) Validating data and using it if it is valid are two separate concerns. I would put the email/password/live-account tests inside the "///do something clever here" logic, not as part of the validation steps.
3) Dynamically validating the input data is a good idea, but your logic is trying to use the values when they have validation errors from earlier tests. For your current code (or other code that will have multiple validation tests for any form field), if the email isn't valid, you are still using it in later steps, so, those steps will fail and you will get multiple error messages, but only the first one is the real problem. The others are follow-on errors. Your code needs to stop validating a particulate field upon the first error for it. The easiest way to do this is to use the field name as the $errors array key. You can then test if there is already an error for a field by testing if there's an element in $errors for that field using isset().
4) The 'values' part of your dynamic validation only accepts a single parameter. You are however using it (which may change) to call a method that requires two parameters. You would need to supply an array consisting of the key/value for each of the parameters, then use the elements of that array in the methods that get called.
5) Your methods need to return a TRUE value when they succeed. They are currently returning a NULL value upon success, which your current code will treat the same as a FALSE value.
6) You have apparently written a wrapper class for the php PDO class and have hard-coded database connection credentials into it. The php PDO class is perfectly fine to use. If you need to add functionality to it, then "extend" it. By extending it, you can directly use all of the base class methods and properties, without having to write a bunch of methods that consist of just a call to the corresponding base method (Keep It Simple.) By hard-coding the connection credentials into the class, you are tied to using a single connection at a time, using those credentials. Your code is not general purpose. As soon as you have a need for connections to multiple databases at the same time, all your code that's tied to this database class will 'break' requiring a re-write to get it to work. It's your main application code that knows where/what the database connection credentials are and what data will be stored in which database. If you keep your code general purpose and use dependency injection to get the instance of the database connection into any instance of a class that needs a connection, your main application code, that you write for each different application, can deal with the things that are application specific without you needing to touch any of the 'support' code in functions and classes.
7) If an account isn't active, there's no point in trying to actually log the user in. You should test for the account being active before or at the same time you try to log the user in. If the account isn't active, stop at that point, setting up the appropriate error message, and don't bother to execute the password_verify() code.
8) There are two other problems with the confirmPassword() method. One has already been mentioned (the second call-time parameter, $password, isn't being supplied when this method is being called) and the code is using the $post variable, which doesn't exist in its scope. Both of these things would be throwing php errors and the password_verify() function itself would either be throwing errors about its parameters or it will always return a false value.