Hey Johnny,
Don't jack it in just yet.
Latency is very simple.
A computer computes. Computations take time. This makes audio playback 'late'.
If you're mixing, you don't care if the hear everything half a second late. Let's face it...you wouldn't realise.
If you're overdrubbing it's a problem. If you hear yourself half a second late you'll be put off.
Go into your reaper settings and find Audio/Device/Request block size.
This can be set to a range of binary numbers, usually between 32 and 1024.
This number is the size of the bucket in which audio is carried to you.
Big bucket = long wait - Computer isn't put under much strain.
Small bucket = short wait - Computer is put under strain.
Set it to 32 or 64 and latency will drop down to a barely noticeable size. Done.
The only caveat is that this makes the computer work harder.
Once you're finished all your recording, you might find the computer is running a bit slow or throwing up errors.
If so, just increase that block size to 512 or something, now that latency doesn't matter.
Regarding VSTS.
There are DAWS that hold your hand; The real ones expect you to know what you're doing.
Midi is just data. Basically digital sheet music.
The computer expects you to import/record midi data then select an appropriate virtual instrument to create audio from that data.
That instrument might be a piano softsynth, addictive drums, whatever...
You have to do that for every instrument you want to hear.
Importing MIDI.
It sounds like you have a midi file that contains data for several different tracks.
Some DAWS will just dump all that data on a single track, which is a nightmare.
I guess they have an option to keep the tracks separate. In truth, I'd have to look that up myself.
I don't know where you're getting these files, but if you're exporting them from elsewhere, look into exporting each track separately.
If you're really stuck, start a thread about it in the reaper section.
On the other hand, if your current work flow works for you and you're not restricted...Stick with it.
You can always create your final WAV through your current methods, then dump it into REAPER for mastering, if that tickles you.