SQL Server: Apply Custom Server Role afterwards for already existing databases
I suspect that you are not actually creating a SERVER ROLE but in fact are creating a DATABASE ROLE in the model database.  I looked under server roles for a bit and could find nothing that would grant read access to a database (old or new). I can see ALTER ANY DATABASE, CREATE ANY DATABASE and VIEW ANY DATABASE but nothing about read/write of the tables.

If what I suspect is correct and you are creating a role in the model database then it would have exactly the effect you are discussing.  You would see the role show up in all new databases but not the old ones.  Unfortunately the only way around this is to create the role in each of the existing databases.  Fortunately this is fairly easy.  

First thing would be to generate a script that creates the role either by using a scripting tool, creating it in the GUI and hitting the script button, or using the generate scripts option (right click on the database). 

Once you have the script for the role you can either manually run it on each of your existing databases (probably ok if you only have &lt;50 or so) or you can generate some dynamic SQL to run the script for you.