The ServiceType property should be set to Default when binding Markers, as they are plain JSON literals. As for Shapes, the GeoJSON service type is used to instruct the RadClientDataSource that there is collection of shapes created via GeoJSON specs.
Of course, the Type properties of the MapLayer instances should be properly set to a value that matches the desired type of usage. They cannot automatically decide what to render and how to be bound to the date. You can see the usage of these properties in these demos:
As for checking what type of layer should be used, I would like to mentioned that everyone should know what type of data is used. The GeoJSON specs are far more complex than the plain JSON notation rules and the differences should be obvious not only by searching for a featurecollection text. For further usage of the GeoJSON and JSON notation for data binding purposes it is recommended to examine the exact specification and acknowledge the purposes of these client-side techniques. I can suggest the following articles:
As for the poorly formatted JSON. This is not a matter that can be handled via the control. This is a client-side technique that is used in the browser, and failures due to incorrect formatting should be handled by the developer of the application. Just like the HTML, the valid JSON format is a matter that should be validated prior to its usage. There are free validators that can help you validate your JSON or GeoJSON properly (JSONLint or GeoJSONLint).
As for the tooltips and shapes, shortly, the shapes in RadMad does not support tooltip usage. The configuration used is valid for markers layer, but using it with shapes layer, it is just ignored. You can examine that in the Shapes Layer demo, the tooltips shown are an integration with the RadToolTip control and this is the proper way to show tooltip in a shapes layer scenario.