So, I've discovered that a 512 MB of RAM instance of Vultr seems to be a bit small for FreePBX. I started running into "unable to allocate memory" errors when making configuration changes. I also found that almost 90% of the memory was being used at all times. I made a new instance with 1024 MB, and I haven't seen the memory allocation errors anymore.
So, I was able to place and receive some test calls! Yay! I was using Zoiper as a softphone application on both my work Windows laptop and my Korora laptop at home. However, a few minutes later, all calls were now failing. Inbound calls to my number would receive a busy signal, and outbound calls received the message "The number has not yet been assigned." I double checked my configuration in FreePBX and all seemed like it was accurate. The trunk even showed as online on the dashboard. Here's the curious thing though. The state of my voip.ms account showing "registration not found" shortly after making a call.
This makes sense, as restarting my PBX temporarily solved the problem, as the trunk would've had to re-register with voip.ms. Something was intefering with maintaining my PBX's registration with voip.ms. I found this article on voip.ms's wiki, and changing the expiration setting on my trunk to 120 seconds seems to have solved the problem.