Teensy should be very reliable.
But the serial driver on Windows 7 (and 8) is a hot mess.
In addition to that: can I decide what port to use, or it is assigned randomly?
Each time Windows sees a new device as a serial port, it assigns a new COM port number starting at COM3. If you change Tools > USB Type of one of the other options with Serial and upload, as far as Windows is concerned you've just plugged in a completely different USB product and it will assign a new COM port number. Likewise, if you edit usb_desc.c and change the serial number Teensy transmits, as far as Windows is concerned you've purchased another copy of the same product, but it's a physically different device since it has a different serial number, so Windows assigns a new COM port number.
This is simply how Microsoft has made every version of Windows. It has some upsides and downsides, compared to how Linux and MacOS work...
There are ways to force Windows to use different COM port numbers, but unless you *really* know what you're doing, it's only a path of painful problems. Actually, I'd be amazed if it even worked well for Windows experts.
or it is assigned randomly?
No, it's sequential. The first time you plug in some serial device, it gets assigned COM3. Then if you plug in something different (where any change to USB ID numbers or serial number is considered something different) it gets COM4. In a simple consumer-oriented world where you only buy stuff and never make anything of your own, it's supposed to be simple. Each physical device you own gets its own COM port number, so if you plug the original one back in, it should again be COM3.
It generally works, but do keep in mind Windows 7 has a lot of serial driver bugs. This stuff never works really well on pre-10 versions of Windows. If you can update to Windows 10 (or Linux) things work so much better.