The background layers such as Google Map, Bing Map and Open Street Map use the same projection, Spherical Mercator and are in the meters. So if you want to plot some data in WGS84 to your OSM background, make sure that you use the projection with the adequate parameters. I see your code. It looks fine to me but it is difficult to tell if there is someting wrong without the whole context. Of course, you have to be sure your original data is in deed in WGS84.
There is a sample in the Code Community that deals with the common task of ploting a GPS point in WGS84 on top of Google Map (as I said earlier Google Map and OSM are in the same projection). It is a Web app but I suggest you look at the code where the projection conversion is happening. I think you are going to find it usefull.