"Is there a way to vertically center this card in the middle of the screen? I've tried different combinations with vertical-align but it keeps showing up at the top."
Remember, vertical centering is relative to the height of the parent element.
If the parent element does not have a defined height, none of the vertical centering solutions will work!
Now let's look at vertical centering in Bootstrap 4...
You can utilize flexbox and size utilities to make the container full-height and set it to display: flex. These options do not require additional CSS (except for ensuring the height of the container like html or body is set to 100%).
Option 1: align-self-center on flexbox child
<div class="container d-flex h-100">
<div class="row justify-content-center align-self-center">
I'm centered vertically
</div>
Link to example
Option 2: align-items-center on flexbox parent (.row is display:flex; flex-direction: row)
<div class="container h-100">
<div class="row align-items-center h-100">
<div class="col-6 mx-auto">
<div class="jumbotron">
I'm centered vertically
</div>
</div>
</div>
Link to example
Option 3: justify-content-center on flexbox parent (.card is display:flex;flex-direction: column)
<div class="container h-100">
<div class="row align-items-center h-100">
<div class="col-6 mx-auto">
<div class="card h-100 border-primary justify-content-center">
<div>
...card content...
</div>
</div>
</div>
</div>
Link to example