I haven't used this cmdlet much either other than a few simple examples. You might want to try the following troubleshooting steps though, to see if it helps identify what the problem is:
1. Copy your JSON file contents to this URL:
http://jsonlint.com/. It seems to do JSON validating, which may identify some problem you're not seeing.
2. Convert something to JSON format using ConvertTo-JSON. For example, you could invoke this:
Get-Service wuauserv | ConvertTo-JSON
3. Compare the JSON format you get from ConvertTo-JSON with the file you're working with in ConvertFrom-JSON and see if you can identify any key differences.
4. Make a copy of your file and prune back the contents a bit, see if you can then convert it from JSON into a PSObject. If that works, repeat that test but pruning back less. See if you can first (a) get it working and then (b) identify what is causing it not to work.
This makes me think there should be a Test-JSON cmdlet that would do what jsonlint.com does.