My guess would be that you want to convert that bag into an array before serializing. JSON.NET probably isn't fully featured enough to have routines for all of the System.Concurrent collection types (and it probably shouldn't be- those types are implementation details). In your case, you might want to try something like this:
// Add a "using System.Linq" somewhere above...
var bag = new ConcurrentBag<int>(){2};
var jsonSerializer = new JsonSerializer();
using(var aStream = new MemoryStream())
{
var sw = new BsonWriter(aStream);
jsonSerializer.Serialize(sw, bag.ToArray());
aStream.Position = 0;
var rw = new BsonReader(aStream);
var intArray = jsonSerializer.Deserialize(rw, typeof(int[]));
var deserializedBag = new ConcurrentBag<int>(intArray);
}