It appears that commas and other special characters are not being escaped properly.
As far as the rationale behind using a properties file, the (current) intent of the configuration map is to facilitate users that share the same channels between multiple instance of Mirth Connect. For instance if you have a test/prod server with a TCP sender and the only difference between servers is the ip/port. By using the configuration map, when you make changes to the channel on test you no longer need to remember to change the ip/port before pushing it to prod. The same can apply for code templates as well. Also the configuration map is tied to a server regardless of database. If you point that server to a new database, the configuration map settings will remain. For these reasons it is not feasible to store it in the database. To support these use cases others may need to be sacrificed.
Perhaps if you describe what your use case is for storing a JSON string in the configuration map, we can evaluate it in the future.