We ran your test script and logged the RPC request it is making. The one that works from web3 1.0.0-beta.55 is:
INFO:root:POST request,
Path: /
Headers:
Content-Type: application/json
Connection: keep-alive
Host: localhost:8000
User-Agent: Mozilla/5.0 (Darwin x64) node.js/8.15.1 v8/6.2.414.75
Content-Length: 63
Body:
{"jsonrpc":"2.0","id":0,"method":"eth_blockNumber","params":[]}
The one that is failing from 1.0.0-beta.37 is:
INFO:root:POST request,
Path: /
Headers:
Content-Type: application/json
Connection: keep-alive
Host: localhost:8000
User-Agent: Mozilla/5.0 (Darwin x64) node.js/8.15.1 v8/6.2.414.75
Content-Length: 97
Body:
{"jsonrpc":"2.0","id":0,"method":{"jsonrpc":"2.0","id":1,"method":"eth_blockNumber","params":[]}}
As you can see, the legacy version is sending an invalid JSON-RPC request with duplicate json, id, and method items. You might want to check for any dependency conflicts in your packge.json that might be causing this.