This sounds perhaps like a bad port.
I searched and found differing models of your BT Hub. I note that some have only one GigE port and the rest labeled just with network symbols. They may be 10 or 100Mb.
Have you tried a different port on the switch? You likely have. Power cycle the switch if you haven't - they can get stuck. Try a different cable.
When you say 25MB windows to windows this sounds like peer to peer. If that is Samba, that is about right.
You can do some diagnostics with your cables plugged in various ways:
Open a terminal in windows (bit rusty here) but I think START | RUN | cmd will do it.
and the command
Open a terminal in Ubuntu and type
You should get output like this:
eth0 Link encap:Ethernet HWaddr bc:5f:f4:7b:2b:15
inet addr:192.168.1.xxx Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::be5f:f4ff:fe7b:2b15/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:6144 Metric:1
RX packets:1154500 errors:0 dropped:0 overruns:0 frame:0
TX packets:2387670 errors:0 dropped:0 overruns:0 carrier:0
RX bytes:301919244 (301.9 MB) TX bytes:2653133922 (2.6 GB)
Interrupt:56 Base address:0xe000
Bad connections might show as errors or dropped packets
Safe tool to install if not already is 'ethtool'. if you have an internet connection:
sudo apt-get install ethtool
Run as superuser:
sudo ethtool eth0
This what my 12.04.1 server reports:
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: Yes
Link partner advertised link modes: 10baseT/Half 10baseT/Full
Link partner advertised pause frame use: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Supports Wake-on: pumbg
Current message level: 0x00000033 (51)
drv probe ifdown ifup
Link detected: yes
Hope that helps. cheers