Не думаю, что у вас будут проблемы с памятью. Я написал программу, которая использует сканер штрих-кода, который использует COM-порт для прослушивания событий со сканера. Я открываю его, когда запускается программа, и держу его открытым, пока программа не закроется без проблем.
Единственное, о чем нужно беспокоиться, это то, что COM-порт может использоваться только одним объектом за раз, поэтому, если ваша программа уже открыла его и пытается открыть его снова, это проблема.
Программа может оставить COM-порт открытым, поэтому лучше всего попытаться открыть его, а если это не удастся, попробуйте закрыть его (два отдельных блока try ... catch), а затем попробуйте открыть его снова. Это хлопотно, но в моем приложении оказалось, что уменьшить количество ошибок, которые мне пришлось устранять. Я просто открываю / закрываю / открываю каждый раз, когда программа загружается, чтобы быть в безопасности.