is writing my own encryption is a good idea in this case?
No. Take advantage of the knowledge, experience, and work of the professionals who have spent decades designing encryption algorithms.
impossible to decrypt.
Any encryption can be decoded just by trying every possible key with an algorithm and checking to see if the output makes sense. So we typically refer to how much work an attacker would be expected to perform before decrypting a message.
An algorithm is considered secure against a certain class of attacker when it is estimated the attacker could not be expected to decrypt the message within a relevent time period.
If you are protecting against a single person with a small amount of retail equipment, the expected work factor is small. If you are protecting against the computing resources of a industralized country, the expected work factor is huge.
Speed
Speed depends on the key size. Several modern algorithms support multiple key sizes. Based on Performance Evaluation of Symmetric Encryption Algorithms it looks like Blowfish is fast, but Blowfish has not been as thoroughly vetted as AES.
ensure data is not tampered with.
Checksum
Checksums, hashes, and Message Authentication Codes (MAC), do not necessarily relate to the encryption algorithm you choose. However some algorithms have modes that perform encryption and authentication. Galois/Counter Mode is such a mode that is used in a number or standards. AES-GCM is an example of an algorithm providing encryption and authentication.
how much data it takes before the key runs out and is going to be re-used.
As @Thomas-Pornin said this is not applicable to modern encryption algorithms. Common practice is to use random data to generate keys, and random data doesn't really run out. You might be refering to the issue of not repeating a Initialization vector (IV, also known as Nonce), but I'm not sure.
Based on the size chunks of data and connection pattern, an interceptor can guess things about the data without seeing the data; what protocol, how is it being used.
Yes, these are generally known as side-channel attacks. There are measure you can take to mitigate some side-channel attacks and they mostly involve protecting the transmission.
Source and destination IPs give an identity clue.
Yes, but attempting to conceal your presence is likely more effort than it is worth.
TCP and IP headers are liable to contain OS information.
Network packets may assist an attacker in fingerprinting your system, but I think it is more valueable to focus on good operation security, especially the policies and procedures that impact your security.
So what would I use if I was to avoid writing my own?
To answer that we should model the work factor of the expected class of attacker, the desired latency and throughput, and available computing resources. However, my guess is that some mode of AES is suitable for you.