First some questions:
- Is Your port registred in SAP? Transaction "SMGW", Menu->Connected Clients ... You should see Your ProgramID (I have to check my notes in the office for the right term).
- Did You check the BAPI with the transaction "SE37" and supplied the ProgramID for the destination? (Again I have to check some of my notes.)
Here are some notes about what I did on some BTS<->SAP projects:
The easiest way to provide an external BAPI interface is to use the "SAP .Net Connector"; actually the BTS2004 "Microsoft SAP Connected" uses the "SAP .Net Connector" (Version 1.x, not 2.x) as well.
What I did, was to use an Windows Service "hosting" the generated "proxy" (or server stub). From there I "inject it into" the BTS. Actually I started with the "file drop pattern"...

Another way would be to "expose" an orchestration as WebService and let SAP consume the WSDL... but I believe this needs some ABAP programming or XI stuff (I am just a middleware guy on the Windows side).
You can also use the "SAP .Net Connector" to interface IDOCs in both directions with a little drawback: You have to work with those flat-file IDOCs... personally I don't like them too much, especially with SAP being able to do IDOCs in XML and BAPIs with SOAP.
If You need to get XML-IDOCs from SAP, things are quite different and pretty easy: starting with 6.40 (or was it 6.20) SAP can send XML-IDOCs using HTTP/POST. Either You try to setup the BTS HTTP (receive) Adapter or program a little IIS handler for more control.
To sum it up:
- The "SAP .Net Connector" is a very nice "library". If You depend on XML Input/Output You have to do some additonal work to convert XML into the BAPI "parts" (or the other way).
- If You like XML,HTTP-POST and SOAP, SAP Systems - even without XI - offer You quite some features... You have to google some time to get enough information about it... many consultants can't help You, because they don't know this "new stuff"!
I hope this helps a bit...