Thanks for your reply Chris.
I've just tried now but it still doesn't work. It's still dropping the "seconds" component of the time. However, I have noticed that I have a similar SP that passes datetime parameter from PB but works as expected. It turns out this new MSOLEDBSQL driver doesn't like an OUTPUT parameter defined in the SP. So as a workaround, I had to return the needed output from the SP by adding a select statement at the very end of the SP and remove the OUTPUT parameter.
So the conclusion that I'm seeing is when you have a stored proc that passes a datetime from PB and that stored proc uses an OUTPUT parameter, you'll have this issue. At least that's what I'm seeing because that specific code in PB has been there for years, we just updated our driver from SQL Native Client to MSOLEDBSQL.